zip 이메일 첨부 파일이 sendmail에 의해 손상되었습니다.

zip 이메일 첨부 파일이 sendmail에 의해 손상되었습니다.

다음 기능을 사용하여 sendmail을 통해 zip 파일이 첨부된 이메일을 보내려고 합니다. csv 파일에서는 제대로 작동하지만 동일한 csv의 zip 형식이 손상되었습니다. 미리 감사드립니다.

mailUsers()
{   
(
echo "From: ${mailfrom}"
echo "To: ${mailto}"
echo "Cc: ${mailcc}"
echo "Subject: ${EMAILSUB}"
echo "Mime-Version: 1.0"
echo 'Content-Type: multipart/mixed; boundary="GvXjxJ+pjyke8COw"'
echo "Content-Disposition: inline"
echo ""
echo "--GvXjxJ+pjyke8COw"
echo "Content-Type: text/html"
echo "Content-Disposition: inline"

cat $outputBodyFile | sed -e "s%@SUMMARY@%`tr '\\n' ' ' < $sqlplusOutput`%" 

echo "--GvXjxJ+pjyke8COw"
echo "Content-Disposition: attachment; filename=$FILENAME"
echo ""
cat $FILENAME
) | /usr/lib/sendmail -t
LogMessage $logFile  "Mail Sent..."
}

답변1

zip 파일은 바이너리 파일이고 csv 파일은 그렇지 않습니다. 이메일은 바이너리 파일에서 작동하지 않습니다.

헤더를 추가 Content-Transfer-Encoding: base64하고 Base64를 사용하여 zip 파일을 인코딩합니다. 따라서 첨부 줄을 다음으로 변경하십시오.

echo "--GvXjxJ+pjyke8COw"
echo "Content-Disposition: attachment; filename=$FILENAME"
echo "Content-Transfer-Encoding: base64"
echo ""
base64 $FILENAME

바이너리 전송 인코딩도 정의되어 있지만 선택 사항이며 모든 메일 서버가 이를 지원하는 것은 아닙니다.

관련 정보