約束の地

キャロ組

Action Mailer を単体で使って Gmail の SMTP 経由でメールを送る

Action Mailer

いつものこれです。

Action Mailer を単体で使う

単なる Mail の gem を使うよりか少し楽なので、Action Mailer を単体で*1使います。いきなりコードを示すと、以下のようになります。

なお Action Mailer の gem は予めインストールしておいてください。またここでは SMTP に Gmail のものを用いることとします。

require 'action_mailer'

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
  address: 'smtp.gmail.com',
  domain: 'gmail.com',
  port: 587,
  user_name: 'your_gmail_account_name@gmail.com',
  password: 'abcdefghijklmnop',
  authentication: 'plain',
  enable_starttls_auto: true,
}

class MyAwesomeMailer < ActionMailer::Base
  def send_awesome_mail
    mail(
      from: 'from_account_name@foobar.com',
      subject: 'おはようございます!',
      to: 'to_account_name@barfoo.com',
      body: 'こんにちは!',
    )
  end
end

MyAwesomeMailer.send_awesome_mail.deliver

補足

上記だけで最低限の*2メールの送信ができます。Action Mailer っぽくするのは各自がんばってください。

*1:Rails を使わずに

*2:単体の Mail gem と同程度の

Powered by はてなブログ