プログラマでありたい

おっさんになっても、プログラマでありつづけたい

Amazon Simple Email Service(SES)のSMTP機能を使ってみる。メールクライアント編

 前回Amazon Simple Email Service(SES)のメール送信テスト用機能(Amazon SES Mailbox Simulator)を試してみました。そのついでにSMTP機能も使ってみたので、そのメモです。
 そもそもSESのSMTP機能とは何でしょうか?その名もずばり、SESを純粋なSMTPサーバとして活用する機能です。SESは便利な機能なのですが、APIからの利用が必須なので既存のアプリではそのまま利用できません。そんな時に純粋なSMTPとして利用出来るのであれば、かなり有難い機能になります。という訳で、SMTP機能の検証です。まずは一般的なメールクライアントから呼び出してみます。

SES SMTP機能の利用の流れは、主に下記の2つだけです。
1.IAMユーザの作成(SMTP credentials)
2.メールクライアントの設定

1.IAMユーザの作成(SMTP credentials)



 まずはSMTP credentialsの作成ですが、これは実質的にSESを使う権限を与えたIAMユーザの作成になります。ウィザードに従って作成すると、sesのSendRawEmail権限を持ったIAMユーザが作成されます。そして、SMTP UsernameとPasswordを含んだCSVをダウンロードが出来ます。実はこのユーザネームとパスワードは、IAMのAccessIdとSecretAccessKeyそのものです。つまりsesのSendRawEmailを付与したら、SMTP credentialsは与えられるということです。そして、SMTPサーバは、(今のところは)email-smtp.us-east-1.amazonaws.comです。

2.メールクライアントの設定



 SMTPサーバとアカウント・パスワードが解ったので、次はメールのクライアントの設定です。これは、一般的なメールクライアントの設定と同じです。ThunderBirdの場合は、サーバ名を貼り付けてポートは465を選び、セキュリティと認証の接続の保護はSSL/TLSを選択しユーザ名にSMTPユーザ(AccessId)を指定します。後は初回のアクセス時にパスワード(SecretAccessKey)を入力します。これだけです。


 当然ながらiPhoneでも設定できます。SSLを使用して認証をパスワードを選択し、サーバポートは587です。


送られたメールのヘッダーを見たら、このようになっていました。

Received: from a192-20.smtp-out.amazonses.com (a192-20.smtp-out.amazonses.com [199.255.192.20])

感想



 メールクライアントの設定をしてメールを送信してみると、あっさりと送信できました。gmailやなんやらがある時代で、一般的なユーザがSMTPサーバだけ求めることは無いとは思いますが、いざという時に使えるかもしれません。何よりもSESをSMTPのプロトコルで利用出来るのは、凄いことだと思います。Verified SenderとSMTP Settingsの関係も不明なので、また検証してみようかと思います。


See Also:
Amazon Simple Email Service(SES)のメール送信テスト用機能を試してみた
AWSで大量メール配信するなら、Amazon SESで決まり