【Ruby on Rails】メール送信の実装手順(ActionMailer)とはまったエラーなど

Ruby on Rails5 にて ActionMailer 機能を使用してユーザ登録のメール送信の実装をしました。送信元は Gmail から送ったり、レンタルサーバのロリポップからも送ったりしました。

以下のエラーでちょっとはまったのですが、それも記載しておきますので誰かの参考になれば何よりです。

はまったエラー(詳細は記事にて)

  • 555 5.5.2 Syntax error.
  • Uncaught exception: 534-5.7.14
スポンサーリンク

初期生成 rails generate

rails generate mailer までは 固定です。

HogeMailer は 任意メーラークラス名です。

send_when_signup は 任意メソッド名です。サインアップ時のメールだったのでこれにしました。

サーバ設定ファイル

開発用 config/environments/development.rb

本番用 config/environments/production.rb

Gmailから送信する場合

ロリポップから送信する場合

レンタルサーバで借りているので設定してみました。

ロリポップで設置したドメインのメールアドレスを作成してある必要があります。メールアドレス作成は以下の公式マニュアルでご確認ください。(管理画面から簡単に出来ます)

https://lolipop.jp/manual/user/doku-mailsett/

メール共通設定

application_mailer.rb

class ApplicationMailer < ActionMailer::Base
default from: ‘管理人 <info@hoge.com>’,
bcc: ‘info-bcc@hoge.com’,
reply_to: ‘info-replyto@hoge.com’
layout ‘mailer’
end

fromのところがこういう風にかっこをつけて「from: ‘管理人 <info@hoge.com>’,」と書かないとエラー「555 5.5.2 Syntax error.」になっちゃいました。

参考サイト様で同じ現象を見つけてこれを対応しました。

メール個別設定

users_controller.rb

ユーザ登録から送信する場合の例で一応コントローラーも記載しております。

ユーザ登録の実装はこっちのページにあります。

【Ruby on Rails】ユーザ登録の実装手順
Ruby on Rails5 にて ユーザ登録の実装をしたので手順を忘れないように記載しておきます。 usersテーブル テーブルの準備...

hoge_mailer.rb

コントローラーから呼ばれる箇所です。userが渡されてきます。userにはemailがある構造が前提です。

send_when_signup.text.rb

メールの内容なので任意ですが一例です。

.text.rb でなく .html.rb にするだけでHTMLメールが出来ちゃいました。

テストしてみる

ユーザ登録時の処理なのでユーザ登録してみます。

Gmailの場合、上記の認証ログインだと以下のエラーになりました。

Uncaught exception: 534-5.7.14

解消方法は、Gmailのセキュリティレベルを低くする事でこのエラーが出なくなります。

レベルを変更するには、以下の「安全性の低いアプリの許可」をする必要があります。以下URLから変更可能です。

https://www.google.com/settings/security/lesssecureapps

違う認証を使用すればセキュリティを低くする必要はないと思うのですが、Gmailはテストで使用しただけだったので、特に調べてません。すみません。。

という感じでエラーが無ければ簡単に出来ます。また何かあれば追記します。

参考サイト様

上記内容で解決しない場合、自分も参考にさせていただいたサイト様に情報があるかもしれません。

https://railsguides.jp/action_mailer_basics.html

https://stackoverflow.com/questions/4321346/555-5-5-2-syntax-error-gmails-smtp

https://stackoverflow.com/questions/27586940/ruby-gmail-uncaught-exception-534-5-7-14-https-accounts-google-com-continue

https://auxin01.wordpress.com/2012/12/14/gmail_5-5-2-syntax-error/

http://terrazilog.quipu.jp/?eid=591548

https://qiita.com/hirotakasasaki/items/ec2ca5c611ed69b5e85e

https://qiita.com/Yama-to/items/823baf26bba3193712ea