Linux邮件程序本身调用sendmail发送邮件,sendmail服务器提供外部邮件发送功能。CentOS默认不能发邮件。需要发邮件的童鞋可以安装一个sendmail程序。
[root@ProxyServer ~]# yum -y install sendmail [root@ProxyServer ~]# /etc/init.d/sendmail start Starting sendmail: [ OK ] Starting sm-client: [ OK ] [root@ProxyServer ~]# chkconfig sendmail on [root@ProxyServer ~]# man mail ...... mailx [-BDdEFintv~] [-s subject] [-a p_w_upload ] [-c cc-addr] [-b bcc-addr] [-r from-addr] [-h hops] [-A account] [-S variable[=value]] to-addr . . . mailx [-BDdeEHiInNRv~] [-T name] [-A account] [-S variable[=value]] -f [name] mailx [-BDdeEinNRv~] [-A account] [-S variable[=value]] [-u user] ......1.通过命令行发送邮件。
[root@ProxyServer ~]# mail -s "test" justin@51cto.com dfdafd dfadf fadf EOT [root@ProxyServer ~]#第一行是输入命令,-s表示邮件的主题,后面的justin@51cto.com是邮件的收件人。输入这行命令后,按回车键,就进入了邮件正文的编写。您可以输入任何文本,例如上面的三行。当电子邮件的文本输入后,您需要按CTRL+D来结束输入。这时会提示你输入抄送地址,也就是邮件抄送地址。你可以不按回车键直接发送邮件。
2.使用管道发送邮件。
[root@ProxyServer ~]# echo "hello,echo"|mail -s "echo" justin@51cto.com使用管道直接键入这一行命令来完成电子邮件的发送,其中回显后跟电子邮件正文。
3.使用文件发送邮件。
[root@ProxyServer ~]# mail -s "password" justin@51cto.com < /etc/passwd使用上述命令后,我们可以将/etc/passwd文件的内容作为电子邮件的内容发送给justin@51cto.com。
在很多情况下,我们还需要通过邮件发送附件。在linux下通过邮件发送附件也很简单,但是首先我们需要安装UUECODE软件包。这个程序对二进制文件进行编码,使它们适合通过邮件发送。直接使用centos的Yum源可能找不到UUECODE命令的包sharutils。我这里用的是网易yum源码。
[root@ProxyServer yum.repos.d]# yum -y install sharutils [root@ProxyServer yum.repos.d]# uuencode CentOS6-Base-163.repo 163_yum_repo |mail -s "附件" pengyl2@finchina.com < /etc/passwd [root@ProxyServer yum.repos.d]#文件CentOS6-Base-163.repo作为电子邮件的附件发送。Uuencode有两个参数,第一个是要发送的文件CentOS6-Base-163.repo,第二个是显示的文件名163_yum_repo。
4.使用外部SMTP(QQ的SMTP)发送邮件。
默认情况下,Bin/mail将使用本地sendmail发送邮件,这需要本地计算机安装并启动Sendmail服务。通过修改配置文件/etc/mail.rc(/etc/nail.rc),可以使用外部SMTP服务器代替sendmail发送邮件。
[root@ProxyServer ~]# vim /etc/mail.rc #文末添加以下 set from=justin@51cto.com set smtp=smtp.51cto.com set smtp-auth-user=justin@51cto.com set smtp-auth-password=51cto set smtp-auth=login [root@ProxyServer ~]# source /etc/mail.rc [root@ProxyServer ~]# mail -s "51cto" 15001*****@139.com < /etc/passwdFrom:发送的邮箱地址(真实地址,我测试的时候直接写了justin,发送邮件失败),对方显示的发件人。
Smtp:发生错误的外部smtp服务器的地址
Smtp-auth-user:由外部Smtp服务器验证的用户名
Smtp-auth-password:由外部Smtp服务器验证的用户的密码
Smtp-auth:邮件认证的方式
如果提示您发送邮件:未找到命令
[root@ProxyServer ~]# mail -s "password" justin@51cto.com < /etc/passwd -bash: mail: command not found则不安装邮件命令,此时需要安装邮件命令
5.邮件日志在日志下面
[root@CHINFO3 ~]# cd /var/log/ [root@CHINFO3 log]# cat mail mail/ maillog maillog.1 maillog.2 maillog.3 maillog.4 [root@CHINFO3 log]# cat mail6.使用sendmail-bp或mailq查看邮件发送队列,该队列将列出几封等待发送的邮件。
[root@CHINFO3 mqueue]# mailq /var/spool/mqueue (5 requests) -----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient----------- tB36BqUi005128 1716 Thu Dec 3 14:11 <infa@chinfo3> (Deferred: mx.263.net.: No route to host) <pvbutler@51cto.com> tB21TicN013397 415 Wed Dec 2 09:29 <infa@chinfo3> (Deferred: mx.263.net.: No route to host) <pvbutler@51cto.com> ...... [root@CHINFO3 mqueue]# sendmail -bp /var/spool/mqueue (5 requests) -----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient----------- tB36BqUi005128* 1716 Thu Dec 3 14:11 <infa@chinfo3> (Deferred: mx.263.net.: No route to host) <pvbutler@51cto.com> tB21TicN013397 415 Wed Dec 2 09:29 <infa@chinfo3> (Deferred: mx.263.net.: No route to host) <pvbutler@51cto.com> ...... [root@CHINFO3 mqueue]#邮件队列的文件保存在/var/spool/mqueue/文件夹中。查看此文件夹时,您可以看到邮件队列中的邮件:
[root@CHINFO3 mqueue]# pwd /var/spool/mqueue [root@CHINFO3 mqueue]# ls dftB111d4Q031164 dftB213omV012806 dftB36BqUi005128 qftB117J4b006323 qftB21TicN013397 dftB117J4b006323 dftB21TicN013397 qftB111d4Q031164 qftB213omV012806 qftB36BqUi005128 [root@CHINFO3 mqueue]#如果需要删除队列,只需清除空文件夹:
[root@CHINFO3 mqueue]# pwd /var/spool/mqueue [root@CHINFO3 mqueue]# ls dftB111d4Q031164 dftB213omV012806 dftB36BqUi005128 qftB117J4b006323 qftB21TicN013397 dftB117J4b006323 dftB21TicN013397 qftB111d4Q031164 qftB213omV012806 qftB36BqUi005128 [root@CHINFO3 mqueue]# rm -f * [root@CHINFO3 mqueue]# ls [root@CHINFO3 mqueue]# mailq /var/spool/mqueue is empty Total requests: 0 [root@CHINFO3 mqueue]#或者直接发送电子邮件,
Send是一个轻量级、小型且无需安装的电子邮件发送命令。下载下来,解压就可以用了。不要把它和sendmail混淆。官方网站地址:http://caspian.dotconf.net/menu/Software/SendEmail/
[root@Zabbix_Server ~]# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz [root@Zabbix_Server ~]# tar zxvf sendEmail-v1.56.tar.gz [root@Zabbix_Server ~]# cp -a sendEmail-v1.56/sendEmail /usr/local/bin/ [root@Zabbix_Server ~]# ll /usr/local/bin/sendEmail -rwxr-xr-x 1 root root 80213 Sep 30 2009 /usr/local/bin/sendEmail [root@Zabbix_Server ~]# sendEmail -h-f表示发件人的邮箱
-t表示收件人的邮箱。
-cc的意思是把cc发给谁?
-密件抄送是指抄送给谁?
-omessage-content-type=html消息内容的格式,html表示是html格式。
-omessage-charset=utf8消息内容代码
-s表示SMTP服务器的域名或ip。
-u表示消息的主题。
-xu表示用于SMTP验证的用户名。
-xp表示SMTP认证的密码(注意这个密码好像有限制,比如我用D!5neyland无法正确识别)
-m消息的内容。
-要发送的附件
[root@Zabbix_Server sendEmail-v1.56]# /usr/local/bin/sendEmail -s smtp.51cto.com -xu zabbix@51cto.com -xp 51cto2016 -f zabbix@51cto.com -t justin@51cto.com -u test -m 123456 -o message-content-type=text -o message-charset=gb2312 Sep 20 10:20:19 zabbix_server sendEmail[6090]: Email was sent successfully! [root@Zabbix_Server sendEmail-v1.56]#发送成功后,会有如下提示:
7月29日15:02:53e10074sendEmail[26347]:邮件发送成功!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)