muugua 发表于 2015-11-25 14:49:02

Sendmail 发送带附件的 html 邮件

  sendmail 是 linux 上的一个基础的 mail 软件。
  通常情况下你不需要自己构造 MMIE 。直接将邮件内容传参就可以完成发送邮件。
  但是当你需要发送一封混合格式的邮件。例如我想发一分邮件正文是html并且带附件的邮件。
  这时候你就需要自己编辑 MMIE 了。首先你可以把一封邮件分为多个part(使用boundary),然后为每个part设定不同的 content-type 就可以了。
  现在贴上一个示例代码。
  

#!/bin/sh
fromAdd="abc@abc.com"
tolist="abc1@abc.com,abc2@abc.com"
cclist="abc3@abc.com,abc4@abc.com"
subject="TextMultipartMixedMail"
attach="attach"
(
echo "From: $fromAdd"
echo "To: $tolist"
echo "Cc: $cclist"
echo "Subject: $subject"
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; charset=US-ASCII"
echo "Content-Disposition: inline"
echo
echo &quot;<h1>This is Html</h1>&quot;
echo
echo &quot;--GvXjxJ+pjyke8COw&quot;
echo &quot;Content-Type: text/plain; charset=US-ASCII;name=$attach&quot;
echo &quot;Content-Disposition: attachment;filename=$attach&quot;
echo
echo &quot;This is attach&quot;
echo
echo &quot;--GvXjxJ+pjyke8COw&quot;
) | /usr/lib/sendmail -t



  
  收到邮件的效果:



  如果有更好的方法。欢迎提出来。
  
页: [1]
查看完整版本: Sendmail 发送带附件的 html 邮件