[server] さくらVPSでメール送信が出来なくて対処した時のメモ

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

さくらVPSのサーバーAからサーバーBに引っ越しを行なった際にサーバーAでできていたメール送信処理ができなくなったので、対応したことをメモしておきます。

メールモジュールはpostfix

はじめは「postfix」のモジュールが入っていないという程度の事で、インストールしたらメール送信できるだろうと浅く考えていましたが、実はサーバー移行時にモジュールチェックをしていたので、インストールはされている状態でした。

次に疑う事は、postfixの設定ですが、通常SMTPのみで使用する場合は、デフォルト設定で問題なく送れるはずなので、プログラム側で特殊な事をやっているか、サーバーAの方での環境を疑ってみました。

mailの設定を確認

サーバーA、サーバーBでこのコマンドをたたいて比べてみました。

細かい設定はあまり必要なく、重要なのは

mydomain = ***.com
myhostname = ***.vs.sakura.ne.jp

この2点ぐらいでしょう。

セットしてみましたが、やはりメールは送られません・・・

いろんなサイトのやり方で検証

外部からの25番ポート経由で行う場合は、「inet_interfaces」を”localhost”ではなく”all”にするという事なのですが、
今回はWEBサービス側からのみなのでlocalhostからのSMTPアクセスになるので”localhost”で問題なし。

/var/log/maillogのエラーメッセージ

上記のようなログがたくさん溜まっていたので、調べたトコロ、ネットワーク高速化対応の時に対応したIPv6を無効化した事で、postfixのエラーが発生していたようですね。

これの対策は
/etc/postfix/main.cf
の編集で

これでエラーは無くなりました。

でも、まだメールは送信できないようです・・・

各種コマンドで確認

サーバー管理者たるもの、コマンドラインでパケットの流れを把握できる必要があるので、
いくつかのコマンドで原因の追求を行なってみることにしました。

メールキューの確認

たまっているキューを見ることができますが、何件たまっているかぐらいの確認

iptablesの確認

そもそもポートを塞がれているかどうかを疑うべきで、下記で確認してみよう。

ただし、今回はiptablesを登録していなかったので、これも対象外

動作しているポートのかくにん

localhost(127.0.0.1)で25番ポートが動作している事が確認できます。
この時点で、モジュールは正常に動いていると考えられます。

telnet通話してみる

まずはlocalhostで試してみるが正常動作している。
※ちなみに、telnetコマンドを抜けるには「quit」と入力しよう

次に外部サーバーにアクセスしてみる

なんとアクセスができていない・・・
もちろん、サーバーAで同じようにやってみると、正常にアクセスできている・・・
どうも、上位ネットワークではないか???という疑問が生まれる。

コマンドで直接メール送信してみる

これで自分のメールソフトで受け取ることができれば、疎通完了という事です。
もちろん、これも通らないのですね。

さくらインターネットの試用版の制限

ネットを見まわっている時に、気になる文句を見つけました。

https://teratail.com/questions/8722

さくらのVPSはお試し期間中はメール送受信できないようになってますがそんなオチ?

確かに、現在サーバーBは「お試し期間中」少し費用をケチって作業をしていたのだけれど、これが本当であれば、
サーバーの設定は問題ないが、25番ポートで外部にアクセスできないという症状は納得がいく。

さらに調べたトコロ、見事にさくらのサイトに書かれていました。

http://vps.sakura.ad.jp/flow/#target_caution

その後、「本登録」を行ったトコロ、telnetで正常アクセスでき、メール送信も行われ、今までキューに溜まっていたデータも一気に送り出されました。

気持よく便秘解消できた気分です。

そもそも「OP25B」設定にひっかからないように、SSLを使えばこういった問題に当たらないわけですが、標準仕様も重要なので、こちらは覚えておくことにしましょう。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です