以前、SESを使ってみた(AWS)の記事で、PerlスクリプトでのSESの利用を紹介しましたが、今回は、PHPで同様の内容を試してみました。
まずは、下記スクリプトで送信元メールアドレスの承認をします。
#!/usr/bin/php require_once("/opt/aws/php/default/sdk.class.php"); $ses = new AmazonSES( "XXXXXXXXXXXXXXXXXXXX", "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" ); $response = $ses->verify_email_address($argv[1]); var_dump($response->body); ?>
下記のようにスクリプトを実行すると、
# ./verify-email-address alert@suz-lab.com
次のような結果となり、
object(CFSimpleXML)#5 (2) { ["@attributes"]=> array(1) { ["ns"]=> string(40) "http://ses.amazonaws.com/doc/2010-12-01/" } ["ResponseMetadata"]=> object(CFSimpleXML)#3 (1) { ["RequestId"]=> string(36) "885fc1ba-fe3a-11e0-b112-7f7789067247" } }
下記のようなメールが届きます。
Dear Amazon SES customer:
We have received a request to authorize an email address for use with Amazon SES. To confirm that you are authorized to use this email address, please go to the following URL:
https://email-verification.us-east-1.amazonaws.com/?…
Your request will not be processed unless you confirm the address using this URL.To learn more about sending email from Amazon SES, please refer to the Amazon SES Developer Guide.
Sincerely, Amazon Web Services
メール本文のURLをクリックすると、下記の画面が表示され、指定したメールアドレスが承認されると、そのアドレスを送信元としてSESでメールを送信できるようになります。
実際に、下記のスクリプトでメールを送信してみます。
#!/usr/bin/php require_once("/opt/aws/php/default/sdk.class.php"); $ses = new AmazonSES( "XXXXXXXXXXXXXXXXXXXX", "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" ); $response = $ses->send_email( $argv[1], array("ToAddresses" => $argv[2]), array( "Subject.Data" => "Email Test " . time(), "Body.Text.Data" => "This is a simple test message " . time() ) ); var_dump($response->body); ?>
そして、下記のように、スクリプトを実行します。
# ./send-email alert@suz-lab.com suzuki@suz-lab.com
次のようなレスポンスがあり、メールが送信されます。
※既にPuroductionモードなので任意のメールアドレスに送信できます。
object(CFSimpleXML)#5 (3) { ["@attributes"]=> array(1) { ["ns"]=> string(40) "http://ses.amazonaws.com/doc/2010-12-01/" } ["SendEmailResult"]=> object(CFSimpleXML)#3 (1) { ["MessageId"]=> string(60) "0000013335e96bb2-2f904dc4-78fe-433e-8eed-1320b955f687-000000" } ["ResponseMetadata"]=> object(CFSimpleXML)#6 (1) { ["RequestId"]=> string(36) "017ee15c-fe3c-11e0-a309-e313d04d677b" } }