LightsailのWordPressでは、デフォルトでメールが送信できません。WordPressの管理ユーザーのメールアドレスを変更しようとしましたが、新規アドレスにメールが送信されず、メールアドレスの変更ができませんでした。
メールを送信する方法について、ドキュメントではSESを使用する方法が紹介されていましたが、それ以外の方法がないのか調べてみました。
メールを送信する方法は大別して 2 つあり、作り込みは不要なため基本的にプラグイン一択。プラグインで使用できるメールプロバイダーは様々。
- WP Mail SMTP プラグインを利用する
- Lightsailに個人用のメールサーバを立てる
SES + WP Mail SMTP プラグインを使用する方法
公式ドキュメントで紹介されている方法です。
SESのSMTPサーバを設定し、デフォルトでインストールされているプラグインを利用します。
- SES開始時、サンドボックスという制限が課された状態
- サンドボックスは、確認済みのアドレスやドメインにのみメールを送信可能
- 任意のアドレスにメールを送信するには、サンドボックスから移動する必要あり
- メールクライアントがないため、メール受信はGmailのように確認できない
- 受信ルールを設定し、設定したアクションに従う
- ルールでAmazon SNSにPublishする設定にし、Gmailなどで確認することは可能っぽい
- SESにSMTP認証情報作成
Eメールを送信するために使用するクレデンシャルを生成
- SESのドメイン検証
LightsailのWordPressで使用しているドメイン。LightsailのDNSゾーンで管理している場合、各種レコードを追加する
- メールを送信する宛先のメールアドレス検証
任意のアドレスの送信したい場合、サンドボックスから移動する
- WP Mail SMTP プラグインを設定
この方法で実際に設定した記事が以下です。
メールクライアント + WP Mail SMTP プラグインを使用する方法
例えば、 yahoo や Gmail などメールクライアントとプラグインを使用してメール送信ができるようになります。SMTPのホストはメールクライアントのサイトに記載されています。
SESを使用しない場合と比較し、設定が楽です。設定方法は、「(使用したいメールクライアント) WP Mail SMTP」などで検索すれば豊富に出てきます。
Lightsail自体にメールサーバを作成する方法
せっかく便利なプラグインがあるので、この方法を利用するメリットがありませんでした。強いてあげるならメールサーバの勉強くらいでしょうか。LightsailはEC2と同じく25番ポートからのメール送信が制限されているため、25番ポートを使用する場合は解除申請から必要です。

結論:どの方法がベターか
Lightsail自体にメールサーバを導入するのは負荷の観点からも推奨できないと思うので、プラグインを利用するのがベターと考えます(何より簡単ですし。)。