添付ファイル付きのsendmailを使用して電子メールを送信する

添付ファイル付きのsendmailを使用して電子メールを送信する

これがsendmailコマンドを使用して電子メールを送信する方法です。

本文にはhtmlファイルと添付のzipファイルが含まれています。

メッセージが破損しています(テキストがなく、添付ファイルが破損しています)。

(
echo "From: xxxx";
echo "To: [email protected]";
echo "Subject: subject";
#echo "Content-Type: text/html";
echo "Content-Type: multipart/mixed; boundary=MAIL_BOUNDARY"
echo "MIME-Version: 1.0";
 echo "--MAIL_BOUNDARY"
echo $message
cat myHtml.html
echo "--MAIL_BOUNDARY"
echo "Content-Type: application/zip"
echo "Content-Transfer-Encoding: base64"
echo "Content-Disposition: attachment; filename=zipfile.zip"
base64  zipfile.zip
echo "--MAIL_BOUNDARY--"

)> email.body

cat email.body | sendmail -t

ベストアンサー1

これが添付ファイルを含むメッセージを外部から受信する方法です。ルートとして実行する必要があります。それ以外の場合、senmailはメールを送信したユーザーではなく、「From:」(-fオプション)を拒否します。私はcat's echosをここのドキュメントに置き換えました。

message="You will find zipfile.zip attached"
(
cat << --OEF--
Subject: $message
MIME-Version: 1.0
Content-Type: multipart/mixed;
  boundary="MAIL_BOUNDARY"


--MAIL_BOUNDARY
Content-Type: multipart/alternative;
  boundary="MAIL_BOUNDARY2"

--MAIL_BOUNDARY2
Content-Type: text/plain; charset=utf-8

$message

--MAIL_BOUNDARY2
Content-Type: text/html; charset=utf-8

--OEF--
cat myHtml.html

cat << --OEF--

--MAIL_BOUNDARY2--

--MAIL_BOUNDARY
Content-Type: application/zip; name=zipfile.zip
Content-Disposition: attachment; filename=zipfile.zip
Content-Transfer-Encoding: base64

--OEF--
base64  zipfile.zip
cat << --OEF--

--MAIL_BOUNDARY--
--OEF--
) |  sendmail -f '[email protected]' [email protected]

おすすめ記事