GCPのインスタンスに付きまとうメール送れない問題

以前にもブログで取り上げましたが、デフォルトでは、GCPのインスタンスからメールを送信することができません。

“Google Compute Engine では、ポート 25、465、587 での送信接続は許可されません。これらの送信 SMTP ポートは、不正使用に利用されることが多いため、デフォルトでブロックされています。”
https://cloud.google.com/compute/docs/tutorials/sending-mail/?hl=ja

 

簡単な設定をすればメールも送れます

なんだか難しそうでおなかいたくなりそうですが、設定自体は難しくありません。
sendgridに登録して、サーバ上でいくつかコマンドを打てばメールは送れるようになります。公式ドキュメントの教え通りに進めれば大丈夫。

公式ドキュメント
https://cloud.google.com/compute/docs/tutorials/sending-mail/using-sendgrid

こちらがスクショつきでわかりやすいので、公式ドキュメントとあわせてみると安心
http://kikutaro777.hatenablog.com/entry/2017/04/21/215228
※ただしCloudLancerは2019年3月現在Marketplaceという名称になっていますのでそこは読み替えてください

 

そう、大丈夫なはずだったのです。

 

以前設定したときは、公式ドキュメント通りに進めればメールを送れるようになったのに、先日別のサーバ(CentOS7)で設定をしてみると、何故かうまくいかない…

 

メールが送れるかmailコマンドで確認を行うところで、

#echo ‘TEST MESSAGE’ | mail -s SUBJECT test@test.jp

send-mail: Cannot open mail:25

とエラーになってしまうのです。

25番ポートが開かないという内容でエラーになっている様子ですが、そもそも25番ポート使わないように設定してるんですけど…なんでそこで25番にいこうとする…?

認証の問題なのかもと思い、APIキーを作り直しましたがダメ。本当にわからなくて、あれこれ試しましたが、やっとわかりました。

 

ssmtpの仕業だった

/etc/ssmtp がサーバに存在している場合、ssmtpが邪魔をしてpostfixがうまく動かなかったようです。その場合は下記コマンドでssmtpをアンインストールできます。フォルダは消えませんが、エラーは消えますよ。

yum list installed|grep ssmtp
yum remove ssmtp

ssmtpがどのタイミングでインストールされたのかさっぱり覚えておらず、まさか原因がここにあるとは…たまたま気が付いてよかったです。

同じ症状でお困りの方がいればと思い記事にしました。一応サーバでssmtpを使用していないか確認してからアンインストールをするようにしてくださいね。ではではまたー

コメントを残す