Edited at

telnetを使ったメール送信をワンライナーで行う

ローカルでメール送信テストや、プログラムからのメール送信を受け止めて確認することができるmailcatcherが便利です。

そこにメールの送信テストを行いたかったのですが、mailcatcherデフォルトのポート番号、1025を指定してメール送信を行います。

Bash(Zsh)環境下だとこうするとワンライナーで送ることができました。

{

sleep 0.3;
echo 'ehlo';
sleep 0.3;
echo 'MAIL FROM:<from@example.com>';
sleep 0.3;
echo 'RCPT TO: <rcpt@example.com>';
sleep 0.3;
echo 'DATA';
sleep 0.3;
echo -e 'To:yousan@example.com\n\n'
echo -e 'From:fromheader@example.com\n\n'
echo -e 'this is body\n'
echo '.';
} | telnet localhost 1025

\nによる改行が重要で、これが無いと動きませんでした。

image.png

ちゃんと送れていますね。

Screen Shot 2018-10-27 at 16.46.56.png


Dockerでの建て方

$ docker run -it schickling/mailcatche

デフォルトで1025と1080を使ってくれるようです。

image.png


その他

{}によるコマンド展開便利ですね!

あとsleepって小数点行けるんだ…と。


参考

https://qiita.com/sheepland/items/973198fa80f0213fe5a1