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

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

新規登録して質問してみよう
ただいま回答率
85.50%
SendGrid

SendGridは、米SendGrid社のクラウド型メール配信サービス。アカウントを作成するだけですぐに利用することが可能です。さらに到達率向上のための送信ドメイン認証対応や、柔軟性のあるスケーラビリティなど多くの機能を有します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

解決済

3回答

4884閲覧

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

KouKuma

総合スコア2

SendGrid

SendGridは、米SendGrid社のクラウド型メール配信サービス。アカウントを作成するだけですぐに利用することが可能です。さらに到達率向上のための送信ドメイン認証対応や、柔軟性のあるスケーラビリティなど多くの機能を有します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

0クリップ

投稿2020/11/12 13:23

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 }

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

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

投稿2020/11/16 12:12

KouKuma

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

投稿2020/11/12 15:53

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KouKuma

2020/11/16 12:07

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

0

ベストアンサー

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

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

投稿2020/11/12 13:45

winterboum

総合スコア23284

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KouKuma

2020/11/16 12:04

winterboum様 返事が遅くなってしまい申し訳ありません。 結局別の方法で解決する事ができました。 しかし、winterboum様から教えていただいたようにまずエラーメッセージの意味をしっかりと理解して対処をするという方法は今後開発を行う上で必要不可欠な対処方法だと感じております。 このような対処方法を教えていただきありがとうございました。 今後はまずエラーメッセージの意味を理解して、その上で解決方法を探っていこうと思います。 ご指摘ありがとうございました。
winterboum

2020/11/16 12:06

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問