Amazon Web Services(以下AWS)のひとつ、Amazon Simple Email Service(以下 AmazonSES)をsymfony1.4で使ってみたメモ。
AmazonSESの設定
WebコンソールであるAWS Management Consoleから送信元アドレスの認証を行います。
SESタブからVerify a New Sender
送信元メールアドレスを入力
送信元メールアドレスを入力
- このあと指定メールをチェックすると、「Amazon SES Address Verification Request」というタイトルのメールが届いているので、本文中のURLをクリックして認証します。
AmazonSES SMTP設定を確認
- Server NameとPortを確認します。
- 現在は下記のように、エンドポイントはUS East、通信はTLSとなるようです。
- アカウントについては、後述を参照。
- 「Create My SMTP Credentials」をクリックし、アカウント設定を行います。
Server name: email-smtp.us-east-1.amazonaws.com
Port: 465
SMTPアカウントの設定
AWSアカウント内の認証の仕組みIAM設定
- AWSアカウント内でさらに権限・認証を行う仕組みとしてIAM(Identity and Access Management)というものがあり、AmazonSESの認証もここで管理するようです。
- ウィザードに従って IAM User Nameを指定します。即座にIAMアカウントが作成されます。
SMTPアカウント情報を確認
- 「Show User SMTP Security Credentials」をクリックするとSMTP Username、SMTP Passwordが表示されるので、控えます。特にPasswordは二度と確認できないようなので、確実にメモします。
symfony1.4への設定
- factories.yml、all:セクションへの記述例。
- usernameとpasswordは上記手順で得られた値をセットします。
all:
mailer:
param:
delivery_strategy: realtime
transport:
class: Swift_SmtpTransport
param:
host: email-smtp.us-east-1.amazonaws.com
port: 465
encryption: tls
username: AKI.................
password: AuT.........................................
実行確認
- 適当なアクションに下記コードを記述し、送信確認を行います。
- composeAndSendの第1引数は上記手順で認証した送信元アドレスである必要があります。
- 同第2引数は送信先です。
- 認証されていない送信元アドレスを指定したり、IAMアカウントが間違っているとエラーになります。
$this->getMailer()->composeAndSend('sender@dondari.com', 'okurisaki@dondari.com', 'subject', 'body');