こんにちは。ゆーろんです。 今回はLighSail上のWordPress環境からAmazon SESを使用してメールを送信させる方法をまとめます。
お問い合わせフォームの設置にはGoogle Formを埋め込む、LightSailにメールサーバ機能を追加するなどの方法もありますが Amazon SESを使用したほうがセキュリティ的にも良いのでSESを採用します。
目次
AmazonSESとは
Amazon SES(Amazon Simple Email Service)はAWSが提供する電子メールサービスの1つです。 既存ドメインまたは既存のメールアドレスを利用して、メール配信をすることができます。
特徴としては以下の通りです。
- 信頼性と高い配信性能
- メールの監視と管理が可能
- 低価格
実装の目標と手順
WordPressからSESを利用して特定のメールアドレスにお問い合わせ内容を送信できるようにする。 なおメール受信は行わず送信専用とする。
手順は以下の1から4を実施。
Identifyの作成
AWS SESのダッシュボード右より「検証済み ID」を選択。
ドメインの検証
SESのダッシュボード右「IDの作成」にて以下パラメータでIdentityの作成を行う。
- IDタイプ: ドメイン
- ドメイン: Route53またはLightSailで設定してあるドメインを記載
- DKIMの詳細設計
- IDタイプ: Easy DKIM
- DNSレコードのRoute53への発行: 有効化
- DKIM署名: 有効化
上記設定でドメインのID作成を行う。
Route53で設定してあるドメインを設定する場合数分以内に検証済みになる。
メールアドレスの検証
ドメインの検証と同様に「IDの作成」にて以下パラメータでIdentityの作成を行う。
- IDタイプ: Eメールアドレス
- Eメールアドレス: 送信先の存在する実際のメールアドレスを設定
上記設定でメールアドレスのID作成を行う。
SMTPクレデンシャルの作成
SESのダッシュボード右「SMTP設定」にて「SMTP認証情報の作成」を選択。
画面に従いSMTP認証用のIAMユーザを作成し、作成後最後に表示されるSMTPユーザ名とSMTPパスワードをメモする。
テストメールの送信
AWS SESのページより「検証済み ID」を選択。
ドメインにチェックを入れて「テストEメールの送信」でメールが送れるかテストを行う。
WP Mail SMTPの設定
WordPress管理画面のプラグイン項目にてq「WP Mail SMTP」を有効化する。 初期設定ウィザードを無視ししてWP Mail SMTPの一般設定にて以下のようにパラメータを設定して保存する。
- 送信元メールアドレス: SESのID設定で作成したEメールアドレスを設定
- フォーム名: 送信元の名称を記述
- メーラ: その他のSMTP
- SMTPホスト: SESのSMTP設定に表示されている「SMTPエンドポイント」を設定
- 暗号化: TLS
- SMTPポート: 587
- 認証: オン
- SMTPユーザ名: SMTPクレデンシャルの設定でメモしたSMTPユーザ名
- SMTPパスワード: SMTPクレデンシャルの設定でメモしたSMTPパスワード
なおWP Mail SMTPはWordPress標準のwp_mail関数を利用したメール送信の設定に対応している。
WordPressテーマでPHPMailerやSwiftMailerなどのライブラリを利用してメールを送信する場合は対応方法がWP Mail SMTPでの設定と異なるので注意が必要。