tapitapi’s blog

1日1杯タピオカ!エンジニア

【Heroku】SendGridでメール送信

SendGrid というAdd-onを使用して、Heroku上でメール送信できるようにする手順を紹介します。

 

ローカルでメール送信テスト用の環境づくりは下記が参考になれば。

tapitapi.hatenadiary.com

 

1. Heroku にログインし、SendGrid を追加

 

Overviewタブで「Configure Add-ons」をクリック

f:id:kayo445:20200323214041p:plain

 

Add-onsの検索で「SendGrid」を検索しクリック

f:id:kayo445:20200323214137p:plain

無料プランで「Provision」をクリック

f:id:kayo445:20200323214334p:plain


下記のように、Add-onsにSendGrid が表示されればOK

f:id:kayo445:20200323214733p:plain

 

※もし、下記の警告が出た場合、クレジットカード登録と、電話番号登録が必要

f:id:kayo445:20200323214436p:plain

※クレジットカード登録は下記を参考に。

tapitapi.hatenadiary.com

 

※電話番号登録はhttps://heroku.com/verifyにアクセス後、下記の画面でSMSによる認証

f:id:kayo445:20200323214716p:plain

 

2. SendGridのKeyを取得し、Heroku環境変数に設定

 

SendGridをクリックし、SendGridのダッシュボードへ移動

f:id:kayo445:20200323214733p:plain

 

初めてダッシュボードへ移動した時に、送信元となるメールアドレスを登録。

そのメール宛に確認URL付きメールが届くので、URLをクリックすると登録完了

f:id:kayo445:20200323215035p:plain

 

ダッシュボードのSettingsタブのAPIKeysをクリック

f:id:kayo445:20200323215019p:plain

 

右上の「Create API Key」をクリック

f:id:kayo445:20200323215231p:plain

API Key Nameに任意の名前(test など)を記入し、「Create & View」をクリック

f:id:kayo445:20200323215308p:plain

Keyが表示されるので、どこかにメモする。(この時しかKeyを確認できないため、必ずメモすること!)

f:id:kayo445:20200323215418p:plain

 

コンソールで下記Herokuコマンドを実行し、環境変数にKeyを設定

heroku config:set SENDGRID_API_KEY=上記で確認したKey

コンソールで下記Herokuコマンドを実行し、環境変数を確認

heroku config

下記のように、API Key, password, usernameが設定されていれば準備OK

SENDGRID_API_KEY: 上記で設定したKey
SENDGRID_PASSWORD: *****
SENDGRID_USERNAME: *****@heroku.com

 

3. config/environments/production.rbに設定を記載

下記はgmailを使用時。ドメインやポートは使用する物によって変更

config.action_mailer.default_url_options = { host:  example.comなど,appのホスト名)}
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.asset_host = example.comなど,appのホスト名

 

ActionMailer::Base.smtp_settings = {
 :user_name => ENV['SENDGRID_USERNAME'],
 :password => ENV['SENDGRID_PASSWORD'],
 :domain => 'gmail.com',
 :address => 'smtp.sendgrid.net',
 :port => 587,
 :authentication => :plain,
 :enable_starttls_auto => true,
    :openssl_verify_mode => 'none',
    :ssl => true,

    :tls => true

}

 

4. deviseを使っている場合はconfig/initializers/devise.rbの設定も行う

config.mailer_sender = '2.で設定したメールアドレス@gmail.com'

 

5.上記の設定を行ったファイルをHeroku上にデプロイ

 

以上ですーー!!

 

おやすみなさいいいい