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

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

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

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

Ruby on Rails 5

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Q&A

解決済

1回答

1395閲覧

heroku環境においてsendgridでメール送信ができない

usedclothjp

総合スコア8

SendGrid

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

Ruby on Rails 5

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

0グッド

0クリップ

投稿2018/06/28 15:31

sendgridを使って、問い合わせフォームからメールを飛ばす機能を作っているのですが、
heroku環境で送信ボタンを押した時点でエラーが発生し、メールを飛ばすことができません。
ローカル環境ではメールを飛ばすことに成功しています。

以下エラーログです。
エラーログの後半に、「ArgumentError (SMTP From address may not be blank: nil)」と出ているので、アドレスの問題かと思うのですが見当がつきません。
その他、sendgridのadd-onやusername,password,apikeyの基本的な設定はしているのですが、
同様のエラーがで続けて、解決ができません。

お分かりになる方いらっしゃいますでしょうか。

エラーログ

2018

12018-06-28T15:04:41.951408+00:00 app[web.1]: [ad66d86f-e3b1-43b3-a910-fe0ee4b9a200] Sent mail to (954.6ms) 22018-06-28T15:04:41.952756+00:00 app[web.1]: [ad66d86f-e3b1-43b3-a910-fe0ee4b9a200] Date: Thu, 28 Jun 2018 15:04:40 +0000 32018-06-28T15:04:41.952759+00:00 app[web.1]: Message-ID: <5b34f908f4158_422f5d1c3693c@a5da8e83-ba8e-4b15-ae8b-5513d1d8f8b9.mail> 42018-06-28T15:04:41.952761+00:00 app[web.1]: Subject: =?UTF-8?Q?=E6=96=B0=E8=A6=8F=E3=81=8A=E5=95=8F=E3=81=84=E5=90=88=E3=82=8F=E3=81=9B=E3=81=8C=E3=81=82=E3=82=8A=E3=81=BE=E3=81=99?= 52018-06-28T15:04:41.952763+00:00 app[web.1]: Mime-Version: 1.0 62018-06-28T15:04:41.952766+00:00 app[web.1]: Content-Type: multipart/alternative; 72018-06-28T15:04:41.952768+00:00 app[web.1]: boundary="--==_mimepart_5b34f908f2bc5_422f5d1c36894"; 82018-06-28T15:04:41.952770+00:00 app[web.1]: charset=UTF-8 92018-06-28T15:04:41.952771+00:00 app[web.1]: Content-Transfer-Encoding: 7bit 102018-06-28T15:04:41.952773+00:00 app[web.1]: 112018-06-28T15:04:41.952775+00:00 app[web.1]: 122018-06-28T15:04:41.952776+00:00 app[web.1]: ----==_mimepart_5b34f908f2bc5_422f5d1c36894 132018-06-28T15:04:41.952778+00:00 app[web.1]: Content-Type: text/plain; 142018-06-28T15:04:41.952779+00:00 app[web.1]: charset=UTF-8 152018-06-28T15:04:41.952781+00:00 app[web.1]: Content-Transfer-Encoding: 7bit 162018-06-28T15:04:41.952782+00:00 app[web.1]: 172018-06-28T15:04:41.952784+00:00 app[web.1]: Inquiry#inquiry_email 182018-06-28T15:04:41.952785+00:00 app[web.1]: 192018-06-28T15:04:41.952787+00:00 app[web.1]: , find me in app/views/inquiry_mailer/inquiry_email.text.erb 202018-06-28T15:04:41.952788+00:00 app[web.1]: 212018-06-28T15:04:41.952792+00:00 app[web.1]: ----==_mimepart_5b34f908f2bc5_422f5d1c36894 222018-06-28T15:04:41.952790+00:00 app[web.1]: 232018-06-28T15:04:41.952793+00:00 app[web.1]: Content-Type: text/html; 242018-06-28T15:04:41.952795+00:00 app[web.1]: charset=UTF-8 252018-06-28T15:04:41.952796+00:00 app[web.1]: Content-Transfer-Encoding: 7bit 262018-06-28T15:04:41.952798+00:00 app[web.1]: 272018-06-28T15:04:41.952799+00:00 app[web.1]: <!DOCTYPE html> 282018-06-28T15:04:41.952801+00:00 app[web.1]: <html> 292018-06-28T15:04:41.952802+00:00 app[web.1]: <head> 302018-06-28T15:04:41.952804+00:00 app[web.1]: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 312018-06-28T15:04:41.952806+00:00 app[web.1]: <style> 322018-06-28T15:04:41.952807+00:00 app[web.1]: /* Email styles need to be inline */ 332018-06-28T15:04:41.952809+00:00 app[web.1]: </style> 342018-06-28T15:04:41.952810+00:00 app[web.1]: </head> 352018-06-28T15:04:41.952812+00:00 app[web.1]: 362018-06-28T15:04:41.952813+00:00 app[web.1]: <body> 372018-06-28T15:04:41.952815+00:00 app[web.1]: <!DOCTYPE html> 382018-06-28T15:04:41.952816+00:00 app[web.1]: <html lang="ja"> 392018-06-28T15:04:41.952818+00:00 app[web.1]: <head> 402018-06-28T15:04:41.952819+00:00 app[web.1]: <meta charset="UTF-8"> 412018-06-28T15:04:41.952821+00:00 app[web.1]: </head> 422018-06-28T15:04:41.952822+00:00 app[web.1]: <body> 432018-06-28T15:04:41.952824+00:00 app[web.1]: <p>Name: test is test</p> 442018-06-28T15:04:41.952826+00:00 app[web.1]: <p>Email: this is test</p> 452018-06-28T15:04:41.952827+00:00 app[web.1]: <p>Message: this is test</p> 462018-06-28T15:04:41.952829+00:00 app[web.1]: </body> 472018-06-28T15:04:41.952830+00:00 app[web.1]: </html> 482018-06-28T15:04:41.952832+00:00 app[web.1]: 492018-06-28T15:04:41.952849+00:00 app[web.1]: </body> 502018-06-28T15:04:41.952851+00:00 app[web.1]: </html> 512018-06-28T15:04:41.952853+00:00 app[web.1]: 522018-06-28T15:04:41.952854+00:00 app[web.1]: ----==_mimepart_5b34f908f2bc5_422f5d1c36894-- 532018-06-28T15:04:41.952856+00:00 app[web.1]: 542018-06-28T15:04:41.953321+00:00 app[web.1]: [ad66d86f-e3b1-43b3-a910-fe0ee4b9a200] Completed 500 Internal Server Error in 2236ms (ActiveRecord: 0.0ms) 552018-06-28T15:04:41.957595+00:00 app[web.1]: [ad66d86f-e3b1-43b3-a910-fe0ee4b9a200] 562018-06-28T15:04:41.957692+00:00 app[web.1]: [ad66d86f-e3b1-43b3-a910-fe0ee4b9a200] ArgumentError (SMTP From address may not be blank: nil): 572018-06-28T15:04:41.957790+00:00 app[web.1]: [ad66d86f-e3b1-43b3-a910-fe0ee4b9a200] 582018-06-28T15:04:41.957915+00:00 app[web.1]: [ad66d86f-e3b1-43b3-a910-fe0ee4b9a200] app/controllers/inquiries_controller.rb:22:in `complete' 59コード

app/controllers/inquiries_controller.rb

class

1 def index 2 @inquiry = Inquiry.new 3 render :action => 'index' 4 end 5 6 def confirm 7 # 入力値のチェック 8 @inquiry = Inquiry.new(inquiry_params) 9 if @inquiry.valid? 10 # OK。確認画面を表示 11 render :action => 'confirm' 12 else 13 # NG。入力画面を再表示 14 render :action => 'index' 15 end 16 end 17 18 def complete 19 # メール送信 20 @inquiry = Inquiry.new(inquiry_params) 21 InquiryMailer.inquiry_email(@inquiry).deliver_now 22 23 # 完了画面を表示 24 render :action => 'complete' 25 end 26 27 private 28 29 def inquiry_params 30 params.require(:inquiry).permit(:name, :email, :message) 31 end 32end 33コード

app/mailers/application_mailer.rb

class

1 default from: ENV["HIDDEN_EMAIL_FROM"] 2 layout 'mailer' 3end 4コード

app/mailers/inquiry_mailer.rb

class

1 def inquiry_email(inquiry) 2 @inquiry = inquiry 3 mail(to: ENV["HIDDEN_EMAIL_TO"], subject: '新規お問い合わせがあります') 4 end 5end 6コード

config/environment/production.rb

Rails.application.configure

1 # Settings specified here will take precedence over those in config/application.rb. 2 3 # Code is not reloaded between requests. 4 config.cache_classes = true 5 6### 省略 ### 7 8 config.action_mailer.raise_delivery_errors = true 9 config.action_mailer.delivery_method = :smtp 10 config.action_mailer.default_url_options = { host: 'https://xxxxxx.herokuapp.com' } 11 ActionMailer::Base.smtp_settings = { 12 :address => 'smtp.sendgrid.net', 13 :port => '587', 14 :authentication => :plain, 15 :user_name => ENV['SENDGRID_USERNAME'], 16 :password => ENV['SENDGRID_PASSWORD'], 17 :domain => 'heroku.com', 18 :enable_starttls_auto => true 19 } 20end 21 22コード

以上、よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Herokuに環境変数をセットしてください.
application_mailer.rbdefault from: from@example.comを加えてください.

投稿2018/06/29 01:34

編集2018/06/29 01:46
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

usedclothjp

2018/06/29 15:01

buta_botti様 正常にメールが送信されました! herokuの環境変数の問題だったのですね ご教示いただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問