unix - 如何使用 sendmail 发送带有多个文本附件的 HTML 正文电子邮件

标签 unix sendmail

我想发送一个 HTML 文件作为邮件正文,并想在此电子邮件中附加多个文本文件。

由于需要发送 html 文件,因此必须使用 sendmail (我无法使用 mailx 做到这一点)。

如何使用 sendmail 发送 HTML 正文电子邮件和多个文本附件?

最佳答案

假设您的系统中有 uunecode 可用,您可以发送带有多个附件的电子邮件,如下所示:

#!/bin/bash

...
...
...
BOUNDARY="=== This is the boundary between parts of the message. ==="

{
   echo  "From: $MAILFROM"
   echo  "To: $MAILTO"
   echo  "Subject:" $SUBJECT
   echo  "MIME-Version: 1.0"
   echo  "Content-Type: MULTIPART/MIXED; "
   echo  "    BOUNDARY="\"$BOUNDARY\"
   echo
   echo  "        This message is in MIME format.  But if you can see this,"
   echo  "        you aren't using a MIME aware mail program.  You shouldn't "
   echo  "        have too many problems because this message is entirely in"
   echo  "        ASCII and is designed to be somewhat readable with old "
   echo  "        mail software."
   echo
   echo  "--${BOUNDARY}"
   echo  "Content-Type: TEXT/PLAIN; charset=US-ASCII"
   echo
   echo  "This email comes with multiple attachments."
   echo
   echo
   echo  "--${BOUNDARY}"
   echo  "Content-Type: application/zip; charset=US-ASCII; name="${ZIPFILE}
   echo  "Content-Disposition: attachment;   filename="`basename ${ZIPFILE}`
   echo
   uuencode $ZIPFILE $ZIPFILE
   echo
   echo  "--${BOUNDARY}--"
   echo  "Content-Type: application/pdf; charset=US-ASCII; name="${PDFFILE}
   echo  "Content-Disposition: attachment;   filename="`basename ${PDFFILE}`
   echo  
   uuencode $PDFFILE $PDFFILE
   echo
   echo  "--${BOUNDARY}--"
} | /usr/lib/sendmail -t

关于unix - 如何使用 sendmail 发送带有多个文本附件的 HTML 正文电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5395082/

相关文章:

linux - 将整个项目的字符集转换为 utf-8

php - 使用 PHP 中的电子邮件回复来加速表单填写提交?

php邮件不工作

Java 的 System.getRuntime().exec 表现得不像 shell 用户调用它

php - Sendmail 管道到 PHP : Could not open input file

php - 为什么我在 php 中发送邮件时不接受用户名和密码?

java - 非交互式 bash shell 的环境变量

perl - ssh命令未运行perl脚本

linux - 查找并删除所有具有多个名称的目录?

php - 我的时间戳有什么问题吗?