bashによるメールの送信(gmail)

opensslとexpect(対話型コマンドの自動化)を用いてgmail経由でメールを送ります。
それぞれメールアドレスのハッシュとパスワードのハッシュを送る必要があるのでそれは以下のコマンドで作成してください。
なお、日本語文を送ることは出来ません。読み取りの値を直接指定しているので、場合によってはそれを調整する必要があるかもしれません。
【参考】http://elechan.blogspot.jp/2015/12/gmail.html

#echo "【アカウント名】@gmail.com" | openssl enc -e -base64
#echo "【パスワード】" | openssl enc -e -base64

【スクリプト】


expect -c " set timeout 5 spawn openssl s_client -starttls smtp -crlf -connect smtp.gmail.com:【接続ポート】 expect \"Verify return code: 0 (ok)\n---\n250 SMTPUTF8\n\" send \"EHLO localhost\n\" expect \"250-PIPELINING\n250-CHUNKING\n250 SMTPUTF8\n\" send \"AUTH LOGIN\n\" expect \"334 VXNlcm5hbWU6\n\" send \"【アカウントのハッシュ】\n\" expect \"334 UGFzc3dvcmQ6\n\" send \"【パスワードのハッシュ】\n\" expect \"235 2.7.0 Accepted\n\" send \"mail from:<【送り元のメールアドレス】>\n\" expect \"250 2.1.0 OK 【※1】 - gsmtp\n\" send \"rcpt to:<【送り先のメールアドレス】>\n\" expect \"250 2.1.5 OK 【※1】 - gsmtp\n\" send \"data\n\" expect \"354 Go ahead 【※1】 - gsmtp\n\" send \"subject:【件名】\n【本文】\n.\n\" expect \"250 2.0.0 OK 【※2】 【※1】 - gsmtp\n\" send \"quit\n\" "

※1:固有文字列?おそらくアドレスに依存
※2:同上。一度手動で行って確認してください。