첨부 파일이 있는 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]

관련 정보