この記事は現役ウェブディベロッパーがわかりやすさにこだわって作成しました
必要な環境
- Amazon SES
※新規アカウントには制限ありますので外部にメール送るには申請が必要です - WordPress
SESのSMTP情報を取得
- SMTP SereverにはコントロールパネルのSMTP Endpointを設定します
- SES用IAMアカウントを作成します
画面右下のCREATEボタンをクリックするとIAMキーが生成されます
作成したSMTP情報をメモします。ダウンロードすることもできます
WordPressにSMTP設定をする
WordPressのSMTP設定は、Wordpress公式ドキュメントに記載されている方法でコードを書くか、または既存のプラグインを利用する方法の二通りの方法があります。今回はWordpressで広く利用されているプラグインWP Mail SMTP を利用してSMTP設定を行います。
WP Mail SMTP by WPForms プラグインを使う
このプラグインは、インストール数・評価数がともに高く、アップデートも頻繁にされているので、業務でも使用しています。SMTP以外にも様々なインタフェイスを利用できるので将来的にSMTPからSENDGRIDなどのAPIに変えたい場合でもそのまま使えます。
Amazon SES SMTP インターフェースの設定をする
プラグインの有効化をすると、左メニューに WP Mail SMTP が出てくるのでクリックをします。一般タブを設定していきます。
送信時のメール設定は慎重におこなってください。
メーラーは Amazon SES ではなく Other SMTP を選択します。
Other SMTP のところを以下のように設定をします。 SMTPホストには前章で取得したエンドポイントを設定します。SMTP のユーザ名とパスワードは、おなじく前章で取得した SMTP のユーザ名とパスワードを入力します。
下にスクロールをして「設定を保存」ボタンをクリックします。
テストメールを送信する
このプラグインにはテストメールを送信する機能がありますので、送信テストをして確認します。「Email Test」タブをクリックします。次に「Send To」に受信できるメールアドレスを入力して「Send Email」をクリックします。
メールが送信されれば成功です。
SMTP ユーザ名とパスワードを wp-config.php に保存する
「一般」タブのパスワードの下に英文でパスワードが暗号化されずに保存されている旨の記載があります。
The password will be stored in plain text. For improved security, we highly recommend using your site’s WordPress configuration file to set your password.
データベース上にSMTP情報が暗号化されずに存在するのは良くないので、 wp-config.php に保存するようにするのがよいでしょう。wp-config.php に以下の定数を追記します。WPMS_SMTP_USER
と WPMS_SMTP_PASS
を以下のように設定します。
define('WPMS_ON', true);
define('WPMS_SMTP_USER', 'XXXXXXXXXXXXXXXX');
define('WPMS_SMTP_PASS', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
正しく設定されると管理画面から SMTP Username と SMTP Password を空欄にして保存します。以降、画面からユーザ名とパスワードが入力できなくなります。
再度テストメールを送信し、送信が成功することを確認します。
まとめ
AWS SESを使ってWordpressからメールを送信することができるようになりました。
この記事についてのご質問またはお困りのことがございましたら、お気軽にお問い合わせください。