Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 将sendmail用于HTML正文和二进制附件_Shell_Unix_Sendmail_Ksh_Uuencode - Fatal编程技术网

Shell 将sendmail用于HTML正文和二进制附件

Shell 将sendmail用于HTML正文和二进制附件,shell,unix,sendmail,ksh,uuencode,Shell,Unix,Sendmail,Ksh,Uuencode,目标:发送带有HTML正文和二进制附件的邮件(使用sendmail) 遵循以下链接中指定的指导原则 它的工作范围是,要么是HTML正文,要么是带有uuencode的二进制附件,但不能两者兼而有之 下面是sendmail的shell脚本片段。这样,HTML正文就可以正常工作了,但是附件被错误地编码/解码,无法查看相同的内容 请告知 #!/usr/bin/ksh export MAILFROM="noreply@site.dom" export MAILTO="somebody@somesit

目标:发送带有HTML正文和二进制附件的邮件(使用sendmail)

遵循以下链接中指定的指导原则

它的工作范围是,要么是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。
已经在论坛和网络上搜索过,找到了大部分关于PHP、Python等的参考资料。

尝试在
uuencode


在不使用
-m

的情况下也可以尝试将电子邮件中的内容传输编码类型从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

使用
mutt-a
容易得多:谢谢,但是当前的服务器设置限制我只发送邮件:-(.此外,服务器上未安装/设置mutt Send HTML body email和sendmail的纯文本附件:uuencode-m将自动在末尾添加新行。我已尝试使用-m,但也不起作用。我再次尝试了您的两个建议,但遇到了相同的问题(附件出现,但无效)。我们如何处理多个附件?@divinedragon,您重复从
echo”--$MAILPART“
echo”--$MAILPART--“
之前的代码。这就是添加一个附件的原因。