質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.61%

railsの本番環境からメールを送信できるようにしたいです。

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 1,533

score 2

railsの本番環境でメールを送信できないので、メールを送信できるようにしたいです。

現在railsチュートリアルを進めています。本番環境にデプロイした際に以下の問題点が発生しました。

発生している問題

ブラウザ上に以下のメッセージが表示され、メールが送信できませんでした。

We're sorry, but something went wrong.

この際にherokuのログを確認したところ、以下のようなメッセージが出てきました。

Net::SMTPFatalError (550 The from address does not match a verified Sender Identity. Mail cannot be sent until this error is resolved.

railsチュートリアルのヘルプページを参照した結果、SendGridからメールが送れない際の対処法が紹介されていたので、試してみました。

試したこと

  1. noreply@example.com を認証済みのメールアドレスに置き換える
  2. SendGrid を Mailgun アドオンに置き換える

1を試したのですが、HerokuのダッシュボードからSendGridのダッシュボードにアクセスする際にアクセスが拒否されていて、認証済みのメールアドレスが分かりませんでした。

2を試した際には、以下のようにターミナルにコマンドを打ち込むように書いてあったのですが、エラーが出てしまい、うまくいきませんでした。

ubuntu:~/environment/sample_app (master) $ heroku addons:create mailgun:starter
Creating mailgun:starter on ⬢ <Herokuのアドレス>... !
 ▸    An error was encountered when contacting the add-on partner to create mailgun:starter. Please try again later.

エラーメッセージを調べてみたのですが、私の調べた限りだと解決方法を見つけられませんでしたので、こちらで質問させていただくことにしました。

初めての投稿のため、不足している情報等あるかと思います。
その際にはお伝えいただければ追記致しますので、ご回答のほど宜しくお願い致します。

 ソースコード

//ファイルパス:sample_app/config/environments/production.rb

config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  host = '本番環境のURL'
  config.action_mailer.default_url_options = { host: host }
  ActionMailer::Base.smtp_settings = {
    :address        => 'smtp.sendgrid.net',
    :port           => '587',
    :authentication => :plain,
    :user_name      => ENV['SENDGRID_USERNAME'],
    :password       => ENV['SENDGRID_PASSWORD'],
    :domain         => 'heroku.com',
    :enable_starttls_auto => true
  }
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

0

「noreply@example.com を認証済みのメールアドレスに置き換える」
をまずやりましょう。それが違うというえらーなのですから。

わからないなら、また登録し直すとかでもしてでも

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/11/16 21:04

    winterboum様

    返事が遅くなってしまい申し訳ありません。
    結局別の方法で解決する事ができました。

    しかし、winterboum様から教えていただいたようにまずエラーメッセージの意味をしっかりと理解して対処をするという方法は今後開発を行う上で必要不可欠な対処方法だと感じております。

    このような対処方法を教えていただきありがとうございました。
    今後はまずエラーメッセージの意味を理解して、その上で解決方法を探っていこうと思います。
    ご指摘ありがとうございました。

    キャンセル

  • 2020/11/16 21:06

    はい、エラーメッセージは解決のヒントが詰まっていることが多いです。
    役に立たない奴も時にありますが。

    キャンセル

0

私も初心者なので解決にはならないかもしれませんが、どうやらsendgirdを使う場合はheroku経由でアカウント作成ではなく、sendgrid側で直接アカウントを作成した方が良いみたいです。同じ方法でデプロイを何度か試みましたが、heroku経由のsendgridアカウントはセキュリティの問題なのか、すぐに凍結されてしまうようです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/11/16 21:07

    grinch1252様

    返事が遅くなり申し訳ありません。
    確かに、heroku経由で作成したSendGridアカウントは凍結されるようですね。つい最近railsチュートリアルの内容も更新されたようで、その際にはmailgunを使用した方法が推奨されておりました。
    そのため再度mailgunでやり直した結果、無事メールが送信できるようになりました。

    ご指摘ありがとうございました。

    キャンセル

0

しばらく時間を置いたら、SendGridからmailgunにアドオンを置き換える事ができました。
ただ、mailgunに置き換えただけではエラーが出ました。
この原因はmailgunのsandboxにテスト送信用のアドレスが登録されていなかったという事が原因だったようで、mailgunにテスト送信用のアドレスを登録した結果、無事本番環境でメールを送る事ができました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る