share facebook facebook twitter menu hatena pocket slack

PHPでSESを使ってみた

鈴木 宏康

WRITTEN BY 鈴木 宏康

以前、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"
    }
}

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。