shell中发送邮件方法小结
1.mail工具
mail是unix-like中发送和接收邮件的程序。linux的每一个账户都有一个信箱/var/spool/mail/wahaha(未读邮件),还有一个收件箱~/mbox(已读邮件会放到这里)
格式:
mail
mail[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)给主机host的user账户发送一份邮件
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内容的邮件
(2)formail用来注明邮件的发件人和收件人,以及邮件内容的MIME和编码信息,以及主题信息。注意这里的收件人和发件人会显示对方邮件的发件人和接收人,就是邮件邮件header中的信息,可能不是实际的邮件接收人。但是当对方reply邮件时,就以这里面的收件人和发件人为准,像例子中xxxxx@sina.com和yyyy@sina.com
(3)sendmail是实际用来发送邮件的,后面的zzzzz@qq.com是邮件的实际接收人,注意这个实际接收人可以和header中To指定的邮件地址不一样哦。
更多推荐
所有评论(0)