telnetを使ってコマンドラインからメール送信を行う


はじめに

メール送信のテストを行う場合、メーラーの設定などなのでコマンドラインから行うと便利です。
またその際にはメール送信テストやプログラムからのメール送信を受け止めて確認することができるmailcatcherが便利です。

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

{
    sleep 0.3;
    echo 'ehlo';
    sleep 0.3;
    echo 'MAIL FROM:<[email protected]>';
    sleep 0.3;
    echo 'RCPT TO: <[email protected]>';
    sleep 0.3;
    echo 'DATA';
    sleep 0.3;
    echo -e 'To:[email protected]\n\n'
    echo -e 'From:[email protected]\n\n'
    echo -e 'this is body\n'
    echo '.';
} | telnet localhost 1025

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

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

Dockerでの建て方

mailcatcherをDockerで立てる方法です。

$ docker run -it schickling/mailcatche

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

その他

{}によるコマンド展開便利ですね!
あとsleepって小数点行けることに気が付きました。

参考