Sendmailで添付ファイルを送信するにはどうすればよいですか?以下のメールを送信できます。
sendmail [email protected] < email.txt
添付ファイル付きで送信する方法がわかりません。試しました。
sendmail [email protected] < email.txt -a foo.pdf
それはsendmail
がどのように機能するかではありません。これは、メールの転送を処理するだけで、適切にエンコードされたメールをすでに想定しています。
このエンコードを自分で行うか、代わりにmail/mailx/mutt
を使用して、適切なメールをsendmail
に渡して配信することができます。
uuencode
を使用して添付ファイルをエンコードできます。
ほとんど電子メールクライアントは、uuencodeされた添付ファイルを認識します。
Email.txtファイルのメールヘッダーの後に空の行があることを確認してください。 Sendmailは「生の」メッセージを想定しています。
#!/bin/sh
(cat email.txt; uuencode foo.pdf foo.pdf)|/usr/sbin/sendmail -i -- [email protected]
実際にはsendmailを直接呼び出すべきではありませんが、mail
またはmailx
を使用すると、正しいヘッダーなどを設定するのにも役立ちます。それらの最新バージョンは、-a
オプションを使用した添付ファイルの追加をサポートしています。
別の方法は、MIME(base645)で添付ファイルをエンコードして、生の電子メールテキストの本文に正しいヘッダーを付けて含め、sendmailに送信することです。