shell中发送邮件方法小结

来源:互联网 发布:葫芦丝淘宝店 编辑:程序博客网 时间:2024/06/03 20:17

1.mail工具

mailunix-like中发送和接收邮件的程序。linux的每一个账户都有一个信箱/var/spool/mail/wahaha(未读邮件),还有一个收件箱~/mbox(已读邮件会放到这里)


格式:

mailmail[option] [-s subject] [-c cc-addr] to-addr

重要选项:

-s 指定邮件主题-c 指定抄送的人-a 指定发送的附件-f 指定从哪个收件箱中读取内容,eg, -f /home/wahaha/mbox

使用范例:

1)打开/var/spool/mail/wahaha信箱,然后有很多的查阅,删除邮件等操作

mail

2)打开已读邮件

mail -f ~/mbox

3)给主机hostuser账户发送一份邮件

mail user@host

4)发送网络邮件,内容交互式输入

mail xxx@sina.com

5)发送带主机的邮件,内容交互式输入

mail -s "xxx主题" xxx@sina.com

6)从echo管道中获取数据作为邮件内容

echo "邮件内容" | mail -s "xxx主题" user@sina.com

7)从文件中获取数据作为邮件内容

mail -s "xxx主题" user@sina.com < /path/to/file

8)发送附件,看mail的版本是否支持

echo "邮件内容" | mail -a foo.tar.gz -s "xxx主题" user@host

2.mutt工具

mail差不多

范例如下:

1)带有主题,从文件中读取邮件的正文,并发送

mutt -s "Testingfrom mutt" user@example.com < /tmp/message.txt

2)通过管道获取echo命令输出作为邮件内容发送

echo "This isthe body" | mutt -s "Testing mutt" user@example.com

3)发送带附件的邮件

echo "This isthe body" | mutt -s "Testing mutt" user@example.com -a/tmp/foo.tar.gz

4)发送带有多个附件的邮件

echo "This isthe body" | mutt -s "Testing" user@example.com -a foo.tar.gz –abar.tar.gz

学习资料参考于:

https://linux.cn/article-5502-1.html

 

3.formail + sendmail发送邮件

举例来说,用formail + sendmail来发送html格式的邮件:

cat wahaha.html | /usr/bin/formail -I "From:xxxxx@sina.com"  -I "To:yyyyy@sina.com" -I"Content-type:text/html;charset=gb2312" -I"Subject:TEST..." | /usr/sbin/sendmail zzzzz@qq.com

备注:

1)上面wahaha.html是一个html网页,邮件是发送html内容的邮件

2formail用来注明邮件的发件人和收件人,以及邮件内容的MIME和编码信息,以及主题信息。注意这里的收件人和发件人会显示对方邮件的发件人和接收人,就是邮件邮件header中的信息,可能不是实际的邮件接收人。但是当对方reply邮件时,就以这里面的收件人和发件人为准,像例子中xxxxx@sina.comyyyy@sina.com

3sendmail是实际用来发送邮件的,后面的zzzzz@qq.com是邮件的实际接收人,注意这个实际接收人可以和headerTo指定的邮件地址不一样哦。



0 0