小编com*_*neo的帖子

使用sendmail进行HTML正文和二进制附件

目标:使用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 …
Run Code Online (Sandbox Code Playgroud)

unix shell ksh sendmail uuencode

10
推荐指数
1
解决办法
4万
查看次数

标签 统计

ksh ×1

sendmail ×1

shell ×1

unix ×1

uuencode ×1