それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

コマンドからSMTPでメールを送るテストを手軽にやる。

メールサーバーの疎通テストを簡単にやりたい

メールサーバーに接続して送信するのを定期的にチェックしています。

昭和平成のレトロ家庭用の機器(FAX)などがメールに対応しててもSMTPSに非対応なので、Raspiでプロキシしていますが、疎通テストや認証テストが面倒なので、自動的にチェックしたい

crontab にかけるくらい単純にしたい。

curlSMTPを送信するのが非常に楽

SMTP over SSL の場合

curl --url 'smtps://smtp.gmail.com:465' \
  --ssl-reqd \
  --mail-from 'example@gmail.com' \
  --mail-rcpt 'edm-user@example.com.com' \
  --upload-file mail.txt  \
  --user 'developer@gmail.com:your-accout-password'

ローカル用の認証・SSLなしSMTPの場合

curl -v --url 'smtp://192.168.1.1:25255' \
  --mail-from from@example.com \
  --mail-rcpt  to@example.com \
  --form-string content=hello

curl でやるのが一番ラク

telnet で接続確認して、そのまま送ると自動化できない。

expect で telnet するのは流石に違う。

python でsmtplib などを使うのもいいが管理が煩雑だ。

ssmpt をインストールするのも面倒だ。

curl は比較的にどこにでも入ってる。

curl ならコマンドがどこにでもあるし、crontab に書くのもらくちんだった。

参考資料

https://blog.edmdesigner.com/send-email-from-linux-command-line/