Amazon Web Services(以下AWS)のひとつ、Amazon Simple Email Service(以下 AmazonSES)をsymfony1.4で使ってみたメモ。

AmazonSESの設定

WebコンソールであるAWS Management Consoleから送信元アドレスの認証を行います。

SESタブからVerify a New Sender

Ses01.png

送信元メールアドレスを入力

Ses02.png

送信元メールアドレスを入力

Ses03.png

  • このあと指定メールをチェックすると、「Amazon SES Address Verification Request」というタイトルのメールが届いているので、本文中のURLをクリックして認証します。

AmazonSES SMTP設定を確認

Ses11.png

  • 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アカウントが作成されます。

Ses12.png

SMTPアカウント情報を確認

Ses13.png

  • 「Show User SMTP Security Credentials」をクリックするとSMTP Username、SMTP Passwordが表示されるので、控えます。特にPasswordは二度と確認できないようなので、確実にメモします。

Ses14.png


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');

facebook slideshare rubygems github qiita