はじめに
まずはじめに失敗談。
fuel-amazon-ses という FuelPHPでSESを扱うパッケージがあります。
GitHub - rob-mccann/fuel-amazon-ses: FuelPHP package for Amazon SES
FuelPHP package for Amazon SES. Contribute to rob-mccann/fuel-amazon-ses development by creating an account on GitHub.
例えば下記などでも紹介されていますが、結論から言うと自分の環境ではうまく使えませんでした。
【実践FuelPHP】FuelPHPでAWSのSESを使用する | DevelopersIO
ということで、自分の場合は PHPMailer を使って SES 経由でメールを送信するようにしました。
FuelPHPでPHPMailerを使う
インストール
PHPMailerのインストールですが、composerでインストールできます。
まず、composer.json
の require
に下記のように phpmailer の記載を追加します。
{
"require": {
"phpmailer/phpmailer": "~5.2"
},
}
追加したら composer をアップデートします。
% php composer.phar update
すると、fuel/vendor/phpmailer
以下に PHPMailer がインストールされ、使える状態になります。
使用方法
実際の使用例です。
$mail = new PHPMailer();
$mail->isSMTP();
//$mail->SMTPDebug = true;
$mail->SMTPAuth = true;
$mail->CharSet = 'utf-8';
$mail->SMTPSecure = 'tls';
$mail->Host = $config['host'];
$mail->Port = $config['port'];
$mail->Username = $config['username'];
$mail->Password = $config['password'];
$mail->setFrom($args['from']);
$mail->addAddress($args['to']);
$mail->Subject = $args['subject'];
$mail->isHTML($is_html);
$mail->Body = $args['body'];
if ($is_html) {
$mail->addStringEmbeddedImage($args['image'], "image", 'xxx.png');
$mail->AltBody = $args['altbody'];
}
try {
$mail->Send();
} catch (Exception $e) {
Log::error(sprintf("SES sendmail failure: %s", $args['to']));
}
コメント