在Linux命令行下发送html格式的邮件
在Linux利用formail+sendmail来发送带图片的邮件
formail接收html格式的文件作为邮件的内容,这样就可以解决发送带图片邮件的问题了,因为html中可以插入图片,只要给出的img src为可用的链接就行了。
命令格式如下cat mailfile.html | formail -I "MIME-Version:1.0" -I "Content-type:text/html;charset=gb2312" -I "Subject:layer4 config monitor" | /usr/sbin/sendmail -oi ×××@×××.com
编码方式如果用utf8,显示出的中文为乱码,所以建议用gb2312,这样就没有乱码啦! 发送脚本范本如下#!/bin/bash
#send a mail to all
#TIME=`date '+%H:%M:%S'`
for MAIL in `cat /home/service/mailscript/people`
do
TIME=`date '+%H:%M:%S'`
cat /home/service/mailscript/active_account.vm|formail -I "From: service" -I "To:$MAIL" -I "MIME-Version:1.0" -I "Content-type:text/html;charset=gb2312" -I "Subject:祝贺你"|/usr/sbin/sendmail -oi $MAIL
echo "$TIME--$MAIL sent ok!" >> /home/service/mailscript/mailtest.log
sleep 10
done
执行上面的脚本的时候注意要使用邮件系统的service系统用户来执行这个脚本。
参考:
今天终于搞定了如何在命令行的情况下发送带图片的邮件。其实思路很简单的,只是以前没有注意到。如何实现呢?就是利用formail+sendmail啦!
formail接受html格式的文件作为邮件内容,这样就可以解决发送带图片邮件的问题啦,因为html中可以插入图片,只要给出的img src为可用的链接就行了。嗯嗯经过测试能够实现既定功能。
cat mailfile.html | formail -I "MIME-Version:1.0" -I "Content-type:text/html;charset=gb2312" -I "Subject:layer4 config monitor" | /usr/sbin/sendmail -oi ×××@×××.com
不行你用上面的命令来试试,觉得好用。不过还有一点就是编码问题,我用的foxmail,如果用utf8,显示出的中文为乱码,所以建议用gb2312,这样就没有乱码啦!