面试的时候被问到怎么用mail发送一个文件给某某,顿时囧了,不会这个 查了一下方法如下:(参照如下两位的博客http://www.qiujicai.com/?post=58http://www.mzone.cc/article/317.html)
这里以CentOS为例,使用mail命令来进行外部邮件的发送。mail命令的语法如下:
- Usage:mail[-iInv][-ssubject][-ccc-addr][-bbcc-addr]to-addr...[--sendmail-options...]
- mail[-iInNv]-f[name]
- mail[-iInNv][-uuser]
- mail-s"Hellofrommzone.ccbyshell"admin@mzone.cc
- hello,thisisthecontentofmail.
- welcometowww.mzone.cc
2、使用管道进行邮件发送
- echo"hello,thisisthecontentofmail.welcometowww.mzone.cc"|mail
- -s"Hellofrom
- mzone.ccbypipe"admin@mzone.cc
- mail-s"Hellofrommzone.ccbyfile"admin@mzone.cc<mail.txt
因为mail程序本身就是调用sendmail来进行邮件发送的,因此我们可以在mail命令中使用sendmail的参数进行配置,比如我想使用特定的发件人发送邮件,可以使用如下命令:
- mail-s"Hellofrommzone.ccwithsender"admin@mzone.cc---fuser@mzone.cc<mail.txt
- yuminstallsharutils
- uuencodetest.txttest|mail-s"hello,seetheattachement"admin@mzone.cc<mail.txt
完成后就可以把text.txt文件作为邮件的附件发送出去了。uuencode有两个参数,第一个是要发送的文件,第二个是显示的文件名称。
这里我主要介绍的是在CentOS下使用mail发送电子邮件的一些使用方法,需要的要求是你的linux必须安装了sendmail并开启了,同时保证可以连接外网。另外,文章中提到的命令本人都经过亲自测试,保证完全可用,不过你需要将命令中的电子邮件地址换成自己的电子邮件地址。
在linux下有一个mail命令可以用来收发邮件,但是默认情况下邮件的发送人是系统当前用户,有时候为了方便的在程序(比如bash脚本)中发送邮件,那么就得指定特定的发送人,这个怎么办呢?在正常的发送命令后面追加“-- -f 发送人邮件 -F 发送人姓名”即可。
简约的格式如下:
mail -s "主题" 收信人邮箱地址 < 要发送的邮件内容文件 -- -f 发送人邮件地址 -F 发件人姓名
例:若要以/home/jecks/test.txt 这文字内容为正文,test为主题发送给jecks@163.com;并以发件人地址为test@qiujicai.com发件人为test.
#mail -s "test"jecks@163.com< /home/jecks/test.txt -- -ftest@qiujicai.com-F test
说明:
-- 后面部分是传给 sendmail 这类 mta 的参数。
谢谢两位 又学到了东西。。。
使用MUTT发送附件
mutt -s "this is a test mail" 59348991@qq.com -a a.txt < /etc/passwd