25番ポートでmailが飛ばなくなったのでsmtp認証を追加

サーバが起動したときとか、何かサービスが停止したときにはメールを飛ばす癖がついてる。

日常何気にメールを見てる半分はサーバからのレポートメールだったりする。

昔は25番ポートを使えばよかったけど、今は違ってきていて465とか587を使う。

自分が利用しているlolipopでもそういう流れらしい。

メールのセキュリティ強化における接続先変更のお願い - ロリポップ!レンタルサーバー
ロリポップ!レンタルサーバー 2021年12月27日 メンテナンス情報「メールのセキュリティ強化における接続先変更のお願い」についてのページです。

去年の暮れに「順次で25番ポート使えなくしまーす」ってアナウンスあった。

465番を使えって書いてあったけど、本当にその番号でいいのか。

何番のポートを使えばいいのか

メールのポート番号はややこしい。
解説されているサイトがいくつかあった。作者さんありがとう。

正しいSMTPポートの選び方(ポート番号25、587、465、2525)
適切なSMTPポートの選択でお悩みですか?このガイドでは、SMTPポートとは何なのか、どのポートを使用すべきか、25, 587, 465, 2525ポートの違いについてご説明します。
ポート465と587の違いとは? | SendGridブログ
この記事は What's the Difference Between Ports 465 and 587? の抄訳です。 メール送信者の皆さんから、ポート465と587の違いについてよく聞かれます。この質問に正確に答えるためには、少し背景...
SMTP25番ポートと587番ポートの違い - Qiita
#送信ポート(SMTP)設定時に必要なポート番号の使い分けSMTPを使用する際のポート番号は25番ポートですが、587番ポートを使うケースもあります。なぜ25番と587番に分かれているのか調べて…

lolipopのアナウンスは465番ってあったけど、587番を使うのが正解なんじゃないかと思う。

ということで587番の設定する。

設定した内容

postfixの設定ファイルに追記

何すればいいのかなって参考にさせてもらったサイト。
作者さんありがとう。

https://centos.rcg.jp/ubuntu20_mailserver/

けっこう細かく書かれていて「メールサーバーのOP25B対策」のあたりを参考にさせてもらった。

postfixの/etc/postfix/main.cfの最後のほうに追記する。

relayhost = smtp.lolipop.jp:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain

認証のための設定実施

sasl_passwdってファイルに認証設定を書いておいてpostfixに使ってもらう。

# echo smtp.lolipop.jp:587 mailアドレス:mailパスワード > /etc/postfix/sasl_passwd
# chmod 640 /etc/postfix/sasl_passwd
# postmap /etc/postfix/sasl_passwd
# systemctl reload postfix

テストメールで確認

メール処理はこんな感じ。

MAIL_TO="hogehoge@gavann-it.com"
MAIL_TITLE="auto)Start-gcp-gvis-dkLinux"

echo  "gcp-gvis-xxlinux.intra.gavann-it.com just has begun. "  > $MAILMSG
echo  "////// gcp-gvis-nadkLinux Started //////\n" >> $MAILMSG
echo  "////// gcp-gvis-nadkLinux ubuntu20 レポート //////" >> $MAILMSG
echo  " \n" >> $MAILMSG

cat $MAILMSG | /usr/bin/mail -a "Content-Type: text/plain; charset=UTF-8" -s $MAIL_TITLE $MAIL_TO

charsetを指定したら本文に全角文字入れても文字化けしない。
ただしメールのタイトルには全角文字使えない。

でも一発目はメールが届かなかった。

参考にしたサイトの情報読み間違えたかなぁ。

/var/log/mail.logあたりにこんな記述があって認証失敗って言ってるみたい。

Mar 17 06:05:27 gcp-gvis-dklinux postfix/smtp[6775]: 38B007E489: to=<hogehoge@gavann-it.com>, relay=smtp.lolipop.jp[157.7.107.4]:587, delay=0.67, delays=0.01/0/0.67/0, dsn=4.7.0, status=deferred (SASL authentication failed; cannot authenticate to server smtp.lolipop.jp[157.7.107.4]: no mechanism available)

なんでかなぁって考えて/etc/postfix/sasl_passwdにある記述を変えてみた。

変更前は、

smtp.lolipop.jp:587

変更後は、

[smtp.lolipop.jp]:587

カッコつけたらうまくいった。
mail.logにもキューに入って送信成功したログが出てメール届いてた。

Mar 17 06:11:53 gcp-gvis-dklinux postfix/smtp[7588]: E40457E487: to=<hogehoge@gavann-it.com>, relay=smtp.lolipop.jp[157.7.107.4]:587, delay=1.3, delays=0.01/0/0.65/0.64, dsn=2.0.0, status=sent (250 Queued! <20220316211151.E40457E487@focl-fslinux.us-east1-b.c.gvis-3579.internal> (Queue-Id: 24B4F3140506))

Mar 17 06:11:53 gcp-gvis-dklinux postfix/qmgr[7583]: E40457E487: removed

  • 2022年11月追記

メールがまた飛ばなくなった。
つけたカッコを外したら飛ぶようになった。

なんやねん腹立つわー。

メールコマンドの経緯

最初の頃はcentos5/6/7あたりを使ってlinuxと暮らしてた。
centos8あたりからdockerとxrdpがうまく使えなくなったので、ubuntu20に変えた。

2014年以前

2014年頃、centosの頃はmailコマンドを使ってた。
これだけでメール飛んだなぁ。平和な時代やった。

MAIL_TO="hogehoge@gavann-it.com"
MAIL_TITLE="auto)testMail-naFSlinux-Homeテストメール"

echo -e "////// naFSLinux report start   //////\n" >> $MAILMSG
echo -e "////// naFSLinux レポートテスト //////\n" >> $MAILMSG
echo -e "////// naFSLinux report end     //////\n" >> $MAILMSG

/bin/mail -s $MAIL_TITLE $MAIL_TO < $MAILMSG

2016年頃

あるときmailコマンドでメール飛ばなくなってsendmailを使ってた。
この頃からcentos使うの怪しくなってきた。

たぶんこんな感じ。gitにスクリプトの経緯は残してないから、厳密にはこれだけじゃなかったかも。

MAIL_TO="hogehoge@gavann-it.com"

echo "To: " $MAIL_TO > $MAILMSG
echo "From: hogehoge@gavann-it.com" >> $MAILMSG
echo "Subject: auto)Start gcp-gvis-naLinux" >> $MAILMSG
echo  "////// gcp-gvis-nadkLinux Started //////\n" >> $MAILMSG
echo  " \n" >> $MAILMSG

cat $MAILMSG | /sbin/sendmail -t
タイトルとURLをコピーしました