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

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

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

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

Q&A

0回答

912閲覧

ActionMailerでSendGridを利用してメール配信している場合に、ユーザー名/パスワード認証からAPIキー認証に変更する方法

gucchi28

総合スコア29

SendGrid

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

0グッド

0クリップ

投稿2021/01/13 15:11

Railsを利用してwebアプリケーション開発をしているものです。
SendGridの仕様変更に伴う改修で知恵をお借りしたく思い、質問させていただきました。
ご教授よろしくお願いいたします。

前提・実現したいこと

現在の問題点

現在RailsのActionMailerでSendGridを利用してメール配信を行っているが、その際にユーザー名/パスワードを用いた認証を行っている。
SendGridの仕様変更(※)に伴い、APIキーを用いた認証が必須となるため、ユーザー名/パスワードを利用した認証が行えなくなり、メール配信ができなくなる。

https://support.sendgrid.kke.co.jp/hc/ja/articles/900004682143--%E9%87%8D%E8%A6%81-API%E3%82%AD%E3%83%BC%E8%AA%8D%E8%A8%BC%E3%81%8A%E3%82%88%E3%81%B3%E4%BA%8C%E8%A6%81%E7%B4%A0%E8%AA%8D%E8%A8%BC%E3%81%8C%E5%BF%85%E9%A0%88%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99

実現したいこと

SendGridのAPIをコールするときの認証の形式を以下のように変更するように改修をしたい。
メール配信の機能はこれまでと同じでよく、SendGridの仕様変更後に配信が失敗しないようにしたい。
・変更前:ユーザー名/パスワードを利用した認証
・変更後:APIキーを利用した認証

質問1

以下の通り修正予定だが、他に修正箇所や懸念事項はないか。

現在のソース

{アプリルート}/config/initializers/mail.rb

ruby

1ActionMailer::Base.delivery_method = :smtp 2ActionMailer::Base.smtp_settings = { 3 address: 'smtp.sendgrid.net', 4 domain: 'gmail.com', 5 port: 587, 6 user_name: 'xxxx@kke.com', 7 password: 'yyyyzzzz', 8 authentication: 'plain', 9 enable_starttls_auto: true, 10} 11ActionMailer::Base.raise_delivery_errors = true

※ user_nameとpasswordは実際はconfig/settings.ymlに記載していますが、わかりやすくするため直接記載しています。

修正後のソース

{アプリルート}/config/initializers/mail.rb

ruby

1ActionMailer::Base.delivery_method = :smtp 2ActionMailer::Base.smtp_settings = { 3 address: 'smtp.sendgrid.net', 4 domain: 'gmail.com', 5 port: 587, 6 user_name: 'apikey', 7 password: '{SendGrid管理画面から発行したAPIキー}', 8 authentication: 'plain', 9 enable_starttls_auto: true, 10} 11ActionMailer::Base.raise_delivery_errors = true

※ {}で囲っている部分は変数を意味しています。

質問2

ユーザーID/パスワード認証の時の同じことができれば問題ないが、APIキー発行の際は以下の設定で問題ないか。
・API Key Permissions
「Restricted Access」を選択
・Access Details
「Mail Send」のみFull Accessにし、それ以外は全てNo Accessにする。

補足情報(FW/ツールのバージョンなど)

Rails : Gemfile.lockは以下の通り

rails (>= 5.0.0, < 5.2.0)

ActionMailer : Gemfile.lockは以下の通り(2リポジトリあるので、2つ記載します)

actionmailer (5.1.4) actionpack (= 5.1.4) actionview (= 5.1.4) activejob (= 5.1.4) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0)
actionmailer (5.1.6) actionpack (= 5.1.6) actionview (= 5.1.6) activejob (= 5.1.6) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0)

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問