Sendmailに添付ファイルを含めることが可能かどうか疑問に思っていました。次のレイアウトで次のemailfile.emlファイルを生成しています
From: Company Name <[email protected]>
To: [email protected]
CC: [email protected]
Subject: Generated Output
Mime-Version: 1.0
This will be the body copy even though it's terrible
これらのメールを使用して送信しています
# /usr/sbin/sendmail -t < emailfile.eml
この部分は作業ファイルですが、このメールに添付ファイルを含めたいのですが、方法がわかりません
他の人を助けることができるように私のために働いた解決策を投稿してください、それはとても遅いです。
これを行うために私が見つけた最も信頼できる方法は、emlファイル自体にbase64として添付ファイルを含めることでした。以下はemlの内容の例です。
注01:ファイルのbase64は、添付ファイルを引数として使用してLinuxでbase64コマンドを実行したものです(任意のbase64ツールで動作するはずです)。
注02:境界に使用される文字列は、日付とランダムな大文字を使用すると意味がありません
ファイル名:emlfile.eml
From: Sender <[email protected]>
To: [email protected]
CC: [email protected]
Disposition-Notification-To: [email protected]
Subject: Generic Subject
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="19032019ABCDE"
--19032019ABCDE
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Generic Body Copy
--19032019ABCDE
Content-Type: application;
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="MyPdfAttachment.pdf"
*base64 string goes here (no asterix)*
--19032019ABCDE--
次に、コマンドを使用してfilename.emlファイルを送信し、添付ファイルを含めることができます。
# /usr/sbin/sendmail -t < filename.eml
mutt
を使用すると、次のように簡単に使用できます。
echo "This is the message body" | mutt -a "/path/to/file_to_attach" -s "subject of message" -- [email protected]
mail
コマンドを使用:
mail -a /opt/emailfile.eml -s "Email File" [email protected] < /dev/null
-a
は添付ファイルに使用されます。
SendEmail
を使用できます:
sendemail -t [email protected] -m "Here is the file." -a attachmentFile