【Linux】バッシュスクリプトでメール送信 メールサーバ切替えたらスクリプトにエラーが。。。
Linux上で監視アラート等に日々バッシュスクリプトでメールを送信していたのですが
メールサーバを切替後に動かなくなりました。。。
切替後のメールサーバの仕様が変わっているのか?最新のメールサーバだからなのかわからないですが、とりあえず解決できたので共有します。
元は下記qiitaの記事を参考にスクリプトを作成していました。
ネットで検索するとこれと同じものが引っかかるので利用しているのがいるのではないかと思います。
修正したものが下記になります。
メールアドレスに<>をつけろとか、dataの後にfrom,toをいれています。
# cat mail.sh
#!/bin/bash
host="メールサーバ"
port=587
user="【ユーザ名をBase64エンコード】" ・・・※1
pass="【パスワードをBase64エンコード】"
mailtext="test mail"
function mail_input {
echo "EHLO localhost"
sleep 1
echo "auth login"
echo "$user"
echo "$pass"
echo "mail from: <xxx@xxx.jp>"
echo "rcpt to: <xxx@xxx.jp>"
sleep 1
echo "data"
echo "from: xxx@xxx.jp"
echo "to: xxx@xxx.jp"
echo "to: mxxx@xxx.jp"
echo "Subject: Test Mail"
echo ""
echo "$mailtext"
echo ""
echo "."
sleep 1
echo "quit"
}
# send
mail_input | telnet $host $port
※1 下記コマンドの結果を記載
# echo -n 'xxx@xxx.jp' | base64
eHh4QHh4eC5qcA==
パスワードも同様