1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Amazon SESを使うことで通常のGmailで独自ドメインを利用する -送信編-

Last updated at Posted at 2022-02-07

この記事について

準備編、受信編の続き
準備編
https://qiita.com/Sand-River/items/4c0dbb16b70e11ec594a
受信編
https://qiita.com/Sand-River/items/4b22f3d0369ab68cfb3f

送信定義

SES Dashboardの「Simple Mail Transfer Protocol (SMTP) settings」から「Create SMTP credentials」を選択

image.png

IAM User Nameだけ入力して「作成」
(必要なIAM Policyは自動でアタッチされる。ses:SendRawEmailのみ許可)

image.png

ユーザ作成の完了と共にSMTPの認証情報がダウンロードできる。
注意書きにもあるが、SMTP認証情報を取得できるのはSESからユーザを作成した__このタイミングのみ__で、失った場合はユーザを作り直す必要がある。
他のIAM Userのようにグループを作成してそれにSendRawEmailをAllowして……という手も使えない。

image.png

Gmailの設定

新規にGoogleアカウントを作成する

Googleアカウントを作成する。

「代わりに現在のメールアドレスを使用」からSESで登録したドメインのメールアドレスを登録。

image.png

S3からメールアドレス検証のメールを探し出して確認コードを入力すればOK。

image.png

Gmailの設定

Gmailの設定(右上の歯車マーク)→「すべての設定を表示」
「アカウント」タブの「名前:」にある「他のメールアドレスを追加」を選択

image.png

Fromの表示名とメールアドレスを指定する。

image.png

Amazon SESのSMTPサーバは email-smtp.<region>.amazonaws.com となる。
例)email-smtp.us-east-1.amazonaws.com
ポートはデフォルトの587でOK。
ユーザ名とパスワードはIAM Userを作成した際の認証情報に記述された情報を転記する。
「TLSを使用したセキュリティで保護された接続(推奨)」を選択(デフォルト)。
「認証情報を確認しています」と表示された後、画面遷移する。

image.png

指定したメールアドレスに確認コードが配信される。
受信編で正しく設定されていればS3にメールが溜まっているはずなのでそこから受信したメールのオブジェクトをダウンロードしてきて確認コードを入力する。

image.png

言語に日本語を指定してるとbase64でエンコードされていてテキストエディタで開いても読めない……コマンドラインでデコードを書くならこんな感じだろうか。<mailfile>の指定が2回入るのが美しくない。

grep -n -E "^\r" <mailfile> | awk -F ':' '{print $1}' | xargs -I{} sed 1,{}d <mailfile> | base64 -d

正しく確認コードが認証されればウィンドウが閉じ、名前の一覧に今追加したアドレスが追加されているはず。

補遺

なお、勘の良い方ならお気付きだろうが、Gmailに登録したメールアドレスは登録ドメインのものであれば任意である。ドメインを自分一人で使う場合であればそこまで気にする必要はないが、グループで使う場合などはSMTP用のIAM Userに制限を掛けて置く必要がある。サンプルとして以下を参照のこと。
(この例であればFromとして利用できるアドレスがfoo@example.comに限られる)

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Effect":"Allow",
      "Action":[
        "ses:SendRawEmail"
      ],
      "Resource":"*",
      "Condition":{
        "StringEquals":{
          "ses:FromAddress":"foo@example.com"
        }
      }
    }
  ]
}

続き

SESで受信したメールを転送する処理を後回しにしていたので、そこをうまいこと作る。

……ちょいちょいとメールを別に送る処理をLambdaで作ればええだけやろ、と思ってた時代がありました。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?