web-dev-qa-db-ja.com

sendmailで添付ファイルを送信するにはどうすればよいですか?

Sendmailで添付ファイルを送信するにはどうすればよいですか?以下のメールを送信できます。

sendmail [email protected] < email.txt 

添付ファイル付きで送信する方法がわかりません。試しました。

sendmail [email protected] < email.txt -a foo.pdf
1
Holly

それはsendmailがどのように機能するかではありません。これは、メールの転送を処理するだけで、適切にエンコードされたメールをすでに想定しています。

このエンコードを自分で行うか、代わりにmail/mailx/muttを使用して、適切なメールをsendmailに渡して配信することができます。

2
Sven

uuencodeを使用して添付ファイルをエンコードできます。
ほとんど電子メールクライアントは、uuencodeされた添付ファイルを認識します。

Email.txtファイルのメールヘッダーの後に空の行があることを確認してください。 Sendmailは「生の」メッセージを想定しています。

#!/bin/sh
(cat email.txt; uuencode foo.pdf foo.pdf)|/usr/sbin/sendmail -i -- [email protected] 
3
AnFi

実際にはsendmailを直接呼び出すべきではありませんが、mailまたはmailxを使用すると、正しいヘッダーなどを設定するのにも役立ちます。それらの最新バージョンは、-aオプションを使用した添付ファイルの追加をサポートしています。

別の方法は、MIME(base645)で添付ファイルをエンコードして、生の電子メールテキストの本文に正しいヘッダーを付けて含め、sendmailに送信することです。

1
HBruijn