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

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

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

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

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

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

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

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

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

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

設定した内容

postfixの設定ファイルに追記

何すればいいのかなって参考にさせてもらったサイトは2025年にはどっか行ってた。centosのサイトやししゃあないか。

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

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

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

1
2
3
4
5
6
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に使ってもらう。

1
2
3
4
# 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

テストメールで確認

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

1
2
3
4
5
6
7
8
9
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あたりにこんな記述があって認証失敗って言ってるみたい。

1
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コマンドを使ってた。 これだけでメール飛んだなぁ。平和な時代やった。

1
2
3
4
5
6
7
8
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にスクリプトの経緯は残してないから、厳密にはこれだけじゃなかったかも。

1
2
3
4
5
6
7
8
9
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

2025年頃

sendmailやなくてmailに戻ってる。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
MAIL_TO="hogehoge@gavann-it.com"
MAIL_TITLE="auto-testMail-naFSlinux-Home"

rm -f $MAILMSG
# Report mail make--r--------------------------------------------#
echo  "////// naFSLinux report start   //////" >> $MAILMSG
echo  "////// naFSLinux ubuntu24 レポートテスト //////" >> $MAILMSG
echo  "////// naFSLinux report end     //////" >> $MAILMSG

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