이것이 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]