linux mail命令详解
用程序发送邮件有3种方式,分别是:
1.模拟http请求邮件服务商网页实现邮件的发送
2.如果邮件服务商开通了smtp服务,那么可以通过smtp协议通过邮件代理服务商发送邮件
3.自己部署邮件服务器,直接在邮件服务器上发送邮件
邮件服务器的配置文件详解:http://www.cnblogs.com/qianyuliang/p/6501531.html
前边两种方式相对简单,其实都可以理解为使用他人的邮件服务器发送邮件,相对来讲会过于依赖第三方的邮件服务器提供的服务,并且在发送邮件时邮件会先进邮件代理服务器的邮箱,再转发至收件人的邮箱,邮件中转过慢,所以在条件允许的情况下,我更喜欢采用我自己的邮件服务器发送邮件;
今天,我就对第三种邮件发送方式(linux(centos)下shell命令发送带附件的邮件)做一下总结
linux下邮件发送命令一般常用的主要有mail,sendmail,mutt;
1.mail命令
普通正文邮件发送命令格式:
1)mail -s "邮件主题" 收件人@邮件服务商.com < 邮件正文内容.txt(此方式需要把邮件正文内容先保存到 邮件正文内容.txt)
2)步骤一:键入 mail -s "邮件主题" 收件人@邮件服务商.com
步骤二:点击enter回车按钮
步骤三:输入邮件正文内容
步骤四:点击enter回车按钮
步骤五:同时按住ctrl+d按钮
3)echo 邮件正文内容 | mail -s "邮件主题" 收件人@邮件服务商.com
带附件的邮件发送方式:
在普通mail 命令后边加 -a 文件名
例子“ mail -s "你好" -a a.txt xxx@qq.com”
2.sendmail
普通邮件发送方式同mail类似
带附件的邮件发送方式:
uuencode 附件 希望在邮件中使用的附件名 > 附件文本文件
2、连接邮件正文文件和附件文本文件
cat 邮件正文文件 附件文本文件 > 正文附件联合文件
3、发送该邮件
sendmail -s "你想使用的邮件标题" 收信人email地址 < 正文附件联合文件
示例:
我的邮件正文文件是 message.txt,想发送的附件名字是 attachment.tar.gz,附件文本文件取名为attachment.txt,正文附件联合文件取名为combined.txt,以“测试”为邮件标题发信给Sam@test.com
uuencode attachment.tar.gz attachment.tar.gz > attachment.txt
cat message.txt attachment.txt > combined.txt
sendmail -s "测试’ Sam@test.com < combined.txt
3.mutt
"你也许听说过这句话?这不是危言耸听,我还没有遇到一个令我满意的 email 程序,直到我遇到 mutt。它不是图形界面的,但是它非常强大和方便。我曾经把它忽略,但是后来我发现其它 email 程序都有某种我不喜欢的怪毛病。最后我选择了 Mutt。"
我在这里只想介绍一下怎样使用Mutt在Linux/Unix下发送邮件:
以下是命令示范:
[root@jumper root]# mutt -s "this is a test mail" eygle@itpub.net -a a.c < /etc/hosts
其中:
s—主题
a—附件
最后追加的是邮件内容
这样就可以发送了。