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

バイナリトランスポートエンコーディングも定義されていますが、オプションであり、すべてのメールサーバーがそれをサポートしているわけではありません。

おすすめ記事