Linuxで一般的にコマンドsendmailが存在するパスの/usr/sbin/sendmailとして話を進めます.
かつそのコマンドを含むMTAとしてのsendmail,あるいはPostfixやEXIM,qmailなどが既にメールの送信ができるように設定されていることを前提とします.
簡単に書くと,下記のようにするとテキストを送ることができます.
$ cat mail.txt | /usr/sbin/sendmail -t -i '-ffrom@exampple.com'
最後はオプション「-f」と送信元メールアドレスを続けて一気に書きます.
あるいはメールヘッダーと本文が別々だった場合は下記のように書きます.
$ cat mail_header.txt mail_body.txt | /usr/sbin/sendmail -t -i '-ffrom@exampple.com'
mail_header.txtとmail_body.txtの間には空行をかならず入れてください.
日本語を含んだテキストの送信も難しいですがnkfを併用することで可能です.
$ echo 'MIME-Version: 1.0' > tmp.mail_header.txt $ echo 'Content-Type: text/plain; charset=ISO-2022-JP' >> tmp.mail_header.txt $ echo 'Content-Transfer-Encoding: 7bit' >> tmp.mail_header.txt $ cat mail_header.txt | nkf --mime >> tmp.mail_header.txt $ cat mail_body.txt | nkf --jis > tmp.mail_body.txt $ cat tmp.mail_header.txt tmp.mail_body.txt | /usr/sbin/sendmail -t -i '-ffrom@exampple.com'
※ちょっといくつか手抜きですけど
これで日本語のメールを送信することができます.
上記はMTAと/usr/sbin/sendmailがqmailな環境とPostfixな環境で確認しました.
お試しください.
最終的にhosts.allowで許可するところでつっかかりましたが、やっと送信できました。
ありがとうございました。