Help us understand the problem. What is going on with this article?

PHPを使ってAmazon SESでHTMLメールを送信する方法

More than 3 years have passed since last update.

PHPからAmazonのSES経由でHTMLメールを送信する方法をまとめました。

SESとは?

Amazonが提供するメール送信サービスです。
既にAWSを利用している場合、EC2やRDSで恩恵を受けているかと思いますが、SESも同様に低コストでスケーラビリティのあるメール送信サービスの実現が可能です。

詳しくはこちらを
 

対応リージョン

この記事を書いている2015年1月の段階ではまだ東京リージョンでの展開が無い為、海外のリージョンを使うことになります。

US East (N. Virginia) リージョン
US West (Oregon) リージョン
EU (Ireland) リージョン

が対応しているのでこの3つの中から選択する事になります。
 

費用

1,000 通当たり 0.10 USDで利用出来ます。

円換算すると

1,000 通で12.05円
(※2015年1月のレート)

1万通送っても120円ちょっとなのでかなり安いですね!
 

PHPからのSESメール送信

ようやく本題です。
SESをPHPから使う方法です。

コードを書く前に

AWS SDK for PHP をインストールが必要です。
手順はAWSのオフィシャルから確認してください
 

コード

//AWSSDK読み込み
require "aws.phar";

use Aws\Ses\SesClient,
use Aws\Ses\Exception\SesException,
use Aws\Common\Enum\Region;

//SES利用のイニシャライズ
$client = SesClient::factory(array(
  'key' => 'AWSのkey',
  'secret' => 'AWSのsecret',
  'region' => Region::US_WEST_2, //リージョン指定。US_West_2を利用
));

//HTMLメールの内容
$html_templete = '<b>SESからテスト送信</b>';

//HTMLメールのbodyと文字コードのセット
$body = array('Data' => $html_templete,'Charset' => 'iso-2022-jp');

//SESからメール送信
$mail = $client->sendEmail(array(

  //FromとToの設定
  'Source' => 'test_from@test.com', //FROMのメールアドレス設定
  'Destination' => array(
  'ToAddresses' => array('test_to@test.com'), //Toのメールアドレス設定
  ),

  //件名の設定
  'Message' => array(
   'Subject' => array(
   'Data' => 'SESからHTMLメール',
  ),

  //本文の設定
  'Body' => array('Html' => $body),
  ),
 )
);

//レスポンス受け取り
$response = $mail->toArray();
$message_id = $response["MessageId"];
$request_id = $response["ResponseMetadata"]["RequestId"];

以上となります。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away