在Linux中有个mail命令可以进行邮件的收发工作,近来学习了一些mail命令的用法,在此记录下,与君共享,供备忘之用!
一、mail命令的3种用法
1. mail -s "test" user@gmail.com
输入该命令后,就可以把当前shell窗口当做编辑器来使用,可以输入任何你想输入的语句,输入完毕之后,按Ctrl+D或者"."符合来发送邮件,此时会提示让输入Cc的邮箱,如果没有的话,直接按回车结束即可。注意,输入"."符号来结束输入时,一定要在新的行首输入,否则会把该符号当做普通字符来发送的。
-s 参数用来指定邮件的Subject(主题)
2.echo "hello"|mail -s test user@gmail.com
该命令直接把echo输出的内容当做邮件内容发送出去。
3.mail -s test user@gmail.com <file
该命令是把file文件里面的内容当做邮件内容发送出去。
二、发送带附件的邮件
如果要发送带附件的邮件,需要使用uuencode这个命令,如果没有该命令的话,需要先安装下sharutils(sudo yum install sharutils)。
uuencode /home/admin/a.txt a.txt|mail -s test user@gmail.com
uuencode需要使用两个参数,第一个是你要发送的文件(一个或多个),第二个是邮件中显示的文件名。如果要发送多个附件,只需多使用几个uuencode命令即可:
(uuencode /home/admin/a.txt a.txt;uuencode /home/admin/b.txt b.txt)|mail -s test user@gmail.com
但是有个疑问,当使用uuencode来发送附件的时候,就不能往邮件正文中写内容了,上面(一)中的3个方法都不能奏效,不知道有没有哪位大侠有没有其他方法,赐教一下。
上面的疑问经过我自己的测试,发现可以通过下面的方法来解决,算是歪打正着了吧:
(echo "hello";uuencode /home/admin/a.txt a.txt)|mail -s test user@gmail.com,或者
(cat /home/admin/a.txt;uuencode /home/admin/a.txt a.txt)|mail -s test user@gmail.com
上面的两种方法都可以发送既有邮件正文又带附件的邮件 (*^__^*)