shell – 使用sendmail进行HTML正文和二进制附件
发布时间:2020-12-15 18:59:49 所属栏目:安全 来源:网络整理
导读:目标:使用HTML正文和二进制附件发送邮件(使用sendmail). 遵循以下链接中指定的准则 http://www.unix.com/shell-programming-scripting/159522-sendmail-html-body-attachment-2.html http://www.unix.com/shell-programming-scripting/58448-sendmail-attac
目标:使用HTML正文和二进制附件发送邮件(使用sendmail).
遵循以下链接中指定的准则 http://www.unix.com/shell-programming-scripting/159522-sendmail-html-body-attachment-2.html http://www.unix.com/shell-programming-scripting/58448-sendmail-attachment.html 它的工作范围是HTML主体或带有uuencode的二进制附件,但不是两者兼而有之. 下面给出了sendmail的shell脚本片段.有了这个,HTML正在变得很好,但是附件被错误地编码/解码并且无法查看相同的内容. 请指教. #!/usr/bin/ksh export MAILFROM="noreply@site.dom" export MAILTO="somebody@somesite.com" export SUBJECT="Test PDF for Email" export BODY="email_body.htm" export ATTACH="file.pdf" export MAILPART=`uuidgen` ## Generates Unique ID ( echo "From: $MAILFROM" echo "To: $MAILTO" echo "Subject: $SUBJECT" echo "MIME-Version: 1.0" echo "Content-Type: multipart/mixed; boundary="-$MAILPART"" echo "---$MAILPART" echo "Content-Type: text/html" echo "Content-Disposition: inline" cat $BODY echo "---$MAILPART" echo 'Content-Type: application/pdf; name="'$(basename $ATTACH)'"' echo "Content-Transfer-Encoding: base64" echo 'Content-Disposition: attachment; filename="'$(basename $ATTACH)'"' uuencode -m $ATTACH $(basename $ATTACH) echo "---$MAILPART--" ) | /usr/sbin/sendmail $MAILTO 我正在使用HP-UX ia64.
将电子邮件中的内容传输编码类型从base64更改为uuencode解决了该问题.
感谢到目前为止的输入. 下面给出了修订后的脚本. #!/usr/bin/ksh export MAILFROM="noreply@domain.com" export MAILTO="mail.to@gmail.com" export SUBJECT="Test PDF for Email" export BODY="email_body.htm" export ATTACH="file.pdf" export MAILPART=`uuidgen` ## Generates Unique ID export MAILPART_BODY=`uuidgen` ## Generates Unique ID ( echo "From: $MAILFROM" echo "To: $MAILTO" echo "Subject: $SUBJECT" echo "MIME-Version: 1.0" echo "Content-Type: multipart/mixed; boundary="$MAILPART"" echo "" echo "--$MAILPART" echo "Content-Type: multipart/alternative; boundary="$MAILPART_BODY"" echo "" echo "--$MAILPART_BODY" echo "Content-Type: text/plain; charset=ISO-8859-1" echo "You need to enable HTML option for email" echo "--$MAILPART_BODY" echo "Content-Type: text/html; charset=ISO-8859-1" echo "Content-Disposition: inline" cat $BODY echo "--$MAILPART_BODY--" echo "--$MAILPART" echo 'Content-Type: application/pdf; name="'$(basename $ATTACH)'"' echo "Content-Transfer-Encoding: uuencode" echo 'Content-Disposition: attachment; filename="'$(basename $ATTACH)'"' echo "" #uuencode -m $ATTACH $(basename $ATTACH) uuencode $ATTACH $(basename $ATTACH) echo "--$MAILPART--" ) > email_`date '+%Y%m%d_%H%M%S'`.out | /usr/sbin/sendmail $MAILTO (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |