サーバが起動したときとか、何かサービスが停止したときにはメールを飛ばす癖がついてる。
日常何気にメールを見てる半分はサーバからのレポートメールだったりする。
昔は25番ポートを使えばよかったけど、今は違ってきていて465とか587を使う。
自分が利用しているlolipopでもそういう流れらしい。
去年の暮れに「順次で25番ポート使えなくしまーす」ってアナウンスあった。
465番を使えって書いてあったけど、本当にその番号でいいのか。
何番のポートを使えばいいのか
メールのポート番号はややこしい。
解説されているサイトがいくつかあった。作者さんありがとう。
lolipopのアナウンスは465番ってあったけど、587番を使うのが正解なんじゃないかと思う。
ということで587番の設定する。
設定した内容
postfixの設定ファイルに追記
何すればいいのかなって参考にさせてもらったサイト。
作者さんありがとう。
けっこう細かく書かれていて「メールサーバーの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