2013年11月11日月曜日

メールサーバー移行失敗

経緯

サーバー解約に伴ってメールサーバーも移転する必要があったが、メールサーバーの運用はかなり手間ということをこれまでの経験で学んだのでメールだけをさくらメールボックスに移転することに決めた。
ちなみにメール送受信で使うドメインはexample.comのようにPOP(IMAP)もSMTPもWebで使っているドメインと同一である。

さくらメールボックス

費用:1000円/年間
容量:10GB
独自ドメイン:可


月80円程度でコスパ最強のメールボックスではないだろうか。


移転計画


  1. 予めMXレコードのTTLを短くしておく
  2. さくらメールボックスに既存のユーザーと同じパスワードを設定しておく
  3. 数日後、MXレコードを変更する

完璧\(^o^)/

メールが受信できない事件

移行計画の1と2を実行し翌週にMXレコードを以下のように書き換えた。

example.com MX example.com



example.com MX さくらメールボックスIP

$dig example.com mx
で変更されている確認。

ついでにGoogleさんにも聞いておく。

$dig @8.8.8.8 example.com mx

確認

  1. [email protected]
  2. [email protected]
2は直ぐに届いたが1が一向にメーラーで受信できない。


さくらメールボックスをWebメールから確認してみると問題なく届いてる。


なぜ…?


原因



POP(IMAP)のDNSレコード参照はMXではない!!!

完全に見落としてた!!!!!

受信しても移行前のサーバーのメールサーバーを参照しており、まったく受信できないのは当たり前。

これを解決するにはexample.comのAレコードをさくらメールボックスに向ける必要があるのだがそこにはWebサーバーはないのでAレコードを切り替えた途端にWebへのアクセスが不可になる。


POPのドメインを変えるしか方法はない。

mail.example.comを作成しさくらメールボックスに向けて、受信サーバーをmail.example.comに変更することで解決。

WordPressからのメールが移行前のSMTPを使ってる&SPAMになる事件


移行後、Wordpressから送信されるメールがGmailの迷惑メールに入るようになってしまった。

メールサーバー移行時にSPFレコードもさくらメールボックスに設定したのになぜ?

原因


WordpressがSMTPをlocalhostを設定していた!!

これも見落としてた。。。

SPFレコードと異なるSMTPから送信されているのでついでにSPAM扱いされておりました。

解決方法としては

  1. PHPのPearでSMTP Authに対応させPHPからのメールを全てさくらメールボックスにリレーする方法。http://stackoverflow.com/questions/112190/php-ini-smtp-how-do-you-pass-username-password
  2. WP SMTPプラグインを入れる方法。http://wordpress.org/plugins/wp-mail-smtp/

このサーバーには複数のサービスが動いておりPHPの環境を変えるのにはリスクがあったので2を選んだ。



この作業でやっとこさメールサーバーを移行出来ました。。。