Webサーバーだけを引っ越してメールフォームがエラーを起こしたときの整理用メモ。
前提
「ドメインA」のWebサーバーを「サーバーA」から「サーバーB」に引っ越した際、
ワードプレス・プラグインのメールフォームがエラーで動作しない場合の話。
メーラー同士では引っ越し前と同じ設定で送受信出来ているものとします。
Xサーバーとさくらインターネット、メールフォーム「MW WP Form」の組み合わせしか検証していないので限定的な話です。
メールフォーム、管理者宛て
Webサーバーを移転してもメールは移転前通り、ということは
- Aレコードは「サーバーB」
- MXレコードは「サーバーB以外」のなにか
としていると思います。
ところが、「サーバーB」において、管理者宛てメールを「アカウント@ドメインA」とすると、フォームは必ず「サーバーB」に送信します。
- 「サーバーB」にアカウントが無ければエラーが発生します。
- 「サーバーB」にアカウントがあったとしても、MXレコードとは違うメールサーバーに届いているので管理者は受信できません。
別途「サーバーB」に届いたメールを読みに行く必要があります。
※「サーバーB」に紐づいていないドメインならば特に問題は起きません。
SMTPサーバーを変更する
ここで登場するのが「WP Mail SMTP」など、SMTPサーバーを指定するプラグイン。迷惑メール判定を回避する際によく使われるようです。
これを導入・設定することで、MXレコード通りの動作になります。
gmailが良く使われるようで、実際期待通りの動作をしてくれますが、gmail側の設定が結構面倒臭いです。
※パスワードを変更すると、当然エラーが出て送信できなくなります。
※自動返信、管理者宛てが送信済みメールとして全部残ってしまうのですが、gmail側の設定で変更できるのか不明。
gmail以外でも、メールを運用できるサーバーなら何でも良いみたいで、
- 「サーバーA」のメールサーバー
- 「サーバーC」のメールサーバー
- メールだけのサービス「サーバーD」のメールサーバー
どれでもOKでした。メールヘッダーも変更できるので、ほんと、どこのでも構わない感じ。
※自動返信、管理者宛てが送信済みメールとして残ることもありません。
※メールソースにSMTPサーバーのIPアドレスが出力されるので、メールサーバーのみのサービスがベターかもしれません。
もちろん「サーバーB」のメールサーバーはNG。
SMTPサーバーを通さない、または「サーバーB」のメールサーバーを通す場合は、必ず「サーバーB」に送信してしまいます。
とにかく「サーバーB」以外を指定
「サーバーBのドメインA」に設置したフォームに限らず、
- 「サーバーBのドメインB」に設置したフォーム
- 「サーバーB」をメールサーバーに設定したメーラーからの送信
※同じサーバーでドメインを複数運用しているとあり得る
など、「サーバーB」のメールサーバーを経由して「ドメインA」宛てに送信すると、必ず「サーバーB」に送信します。
これを回避できる出来る方法はあるのかな。「サーバーB」の実態はさくらのスタンダードなのですが、他はどうなんだろうか。試してみよう、、、
普段まったくタッチしないところなので、書いてることが滅茶苦茶かもしれません。
とりあえず、こういう環境で試したらこうなった、というお話です。