linux mail命令详解

时间:2023-03-08 20:03:41
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类似

带附件的邮件发送方式:

写道
1、用uuencode 将附件编码为文本形式
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

写道
Muttmutt_button.gif是个功能强大的email 程序,引用一段别人的话:

"你也许听说过这句话?这不是危言耸听,我还没有遇到一个令我满意的 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—附件
最后追加的是邮件内容

这样就可以发送了。