コンテンツにスキップ

AWS SDK for PHP を使ってメール送信

Amazon SES を初めて使ったのでメモ。 regionがAsia Pacific (Tokyo)の場合は制限があるみたいなので注意。

最大送信量 1日あたりの送信割り当て
1秒あたり1通 24時間あたり200通

前提

コード

<?php
require 'vendor/autoload.php';

$client = new \Aws\Ses\SesClient([
    'version' => 'latest',
    'region' => 'ap-northeast-1',
    'credentials' => [
        'key'    => 'hogehoge',
        'secret' => 'fugafuga',
    ],
]);

$from = 'from@example.com'; // Amazon SESでVerifiedしたメールアドレス
$to = 'to@example.com';
$charset = 'UTF-8';
$subject = '件名';
$body = '本文';

$result = $client->sendEmail([
    'Destination' => [
        'ToAddresses' => [$to],
    ],
    'ReplyToAddresses' => [$from],
    'Source' => $from,
    'Message' => [
        'Body' => [
            'Text' => [
                'Charset' => $charset,
                'Data' => $body,
            ],
        ],
        'Subject' => [
            'Charset' => $charset,
            'Data' => $subject,
        ],
    ],
]);

// 送信ID
$messageId = $result['MessageId'];
echo "Email send. Message ID: {$messageId}\n" ;

HTML形式で送信したい場合は、TextHtmlにすればOK。

参考