零細システムエンジニアの備忘録

RPA、サーバ、ネットワークに関する設定メモ、導入相談もコメント欄やメールに頂ければお答えしますのでお気軽にご相談下さい(^^)

【Linux】バッシュスクリプトでメール送信 メールサーバ切替えたらスクリプトにエラーが。。。

Linux上で監視アラート等に日々バッシュスクリプトでメールを送信していたのですが

メールサーバを切替後に動かなくなりました。。。

切替後のメールサーバの仕様が変わっているのか?最新のメールサーバだからなのかわからないですが、とりあえず解決できたので共有します。

 

元は下記qiitaの記事を参考にスクリプトを作成していました。

ネットで検索するとこれと同じものが引っかかるので利用しているのがいるのではないかと思います。

qiita.com

 

修正したものが下記になります。

メールアドレスに<>をつけろとか、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==
パスワードも同様