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を使用していないか確認してからアンインストールをするようにしてくださいね。ではではまたー