読者です 読者をやめる 読者になる 読者になる

とりあえずノート

情報系の大学に通っている大学生が日常のことについてとりあえずメモっていくブログです

最短でメール送信を実装する方法(自称)

Rails

Gmailでメール送信を実装した時の流れを書いてみました。

 

まず、Railsのアプリケーションを作成します。ここでは"mail-app-demo"という名前にアプリケーション名にしています。

rails new mail-app-demo

次に以下のコードを追加します。

config/environments/development.rb

# Don't care if the mailer can't send.
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :address => 'smtp.gmail.com',
  :port => 587,
  :domain => 'example.com',
  :user_name => 'メールアドレス',
  :password => 'パスワード',
  :authentication => :plain,
  :enable_starttls_auto => true
 :password => '2段階認証用のパスワード',
}
 
※ここでは2段階認証の場合です。上記のメールアドレス、パスワードはGmailのログインで使われるものを用い、2段階認証用のパスワードは新しくパスワードを発行してもらわなければなりません。

https://security.google.com/settings/security/apppasswords

ここから発行しましょう。

 
次に"mail to: "to@example.org"の'to@example.org'の部分を自分の送りたいメールアドレスに変更
app/mailers/user_mailer.rb
class UserMailer < ActionMailer::Base
  default from: "from@example.com"
 
  # Subject can be set in your I18n file at config/locales/en.yml
  # with the following lookup:
  #
  #   en.user_mailer.registration_confirmation.subject
  #
  def registration_confirmation
    @greeting = "Hi"
 
    mail to: "to@example.org"
  end
end
 
次にコマンドラインで以下のコマンドを打つ
$ bundle exec rails c
 
"pry)"に切り替わるのでさらに以下のコマンドを打つ
UserMailer.registration_confirmation.deliver
 
これでできるはず。。。
 
参考URL