CentOS下使用mail命令发送邮件

前端之家收集整理的这篇文章主要介绍了CentOS下使用mail命令发送邮件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如果提示mail: command not found

[root@ProxyServer~] #mail-s"password"justin@51cto.com</etc/passwd
- bash :mail: command notfound

那么就是没有安装mail命令,此时需要安装mail命令

#yuminstallmailx-y
#rpm-qa|grepmail
libreport-plugin-mailx-2.0.9-19.el6.x86_64
mailx-12.4-7.el6.x86_64
procmail-3.22-25.1.el6.x86_64
mailcap-2.1.31-2.el6.noarch
sendmail-8.14.4-8.el6.x86_64
#

Linux服务器mail程序本身就是调用sendmail来进行邮件发送的,sendmail服务器提供对外的邮件发送功能。CentOS默认不能发送邮件,需要发送邮件的童鞋可以安装一个sendmail程序

#yum-yinstallsendmail
#/etc/init.d/sendmailstart
Startingsendmail:[OK]
Startingsm-client:[OK]
#chkconfigsendmailon
#manmail
......
mailx[-BDdEFintv~][-ssubject][-aattachment][-ccc-addr][-bbcc-addr][-rfrom-addr][-hhops][-Aaccount]
[-Svariable[=value]]to-addr...
mailx[-BDdeEHiInNRv~][-Tname][-Aaccount][-Svariable[=value]]-f[name]
mailx[-BDdeEinNRv~][-Aaccount][-Svariable[=value]][-uuser]
......

1、通过命令行发送邮件

#mail-s"test"justin@51cto.com
dfdafd
dfadf
fadf
EOT
第一行是输入的命令,-s表示邮件主题,后面的justin@51cto.com则是邮件的接收人,输入完这行命令后回车,会进入邮件正文的编写,可以输入任何文字,比如上面的三行。当邮件正文输入完成后,需要按CTRL+D结束输入,此时会提示你输入Cc地址,即邮件抄送地址,没有直接回车就完成了邮件的发送。

wKioL1ZJcWDSpWIsAAAyLpsj3lY256.png

2、使用管道进行邮件发送


#echo"hello,echo"|mail-s"echo"justin@51cto.com

wKiom1ZJch2QWrGYAAAr0bqjmfw207.png

使用管道直接敲入这行命令即可完成邮件的发送,其中echo后的是邮件正文。

3、使用文件进行邮件发送


#mail-s"password"justin@51cto.com</etc/passwd

使用上面的命令后,我们就可以把/etc/passwd文件内容作为邮件内容发送给justin@51cto.com了

wKiom1ZJcrCQG8JbAABlzcaKwgs900.png

很多情况下,我们也需要使用邮件来发送附件,在linux下使用mail命令发送附件也很简单,不过首先需要安装uuencode软件包,这个程序是对二进制文件进行编码使其适合通过邮件进行发送,直接使用centos的yum源可能找不到uuencode命令的包sharutils,我这里使用了网易Yum源

[root@ProxyServeryum.repos.d] #yum-yinstallsharutils
#uuencodeCentOS6-Base-163.repo163_yum_repo|mail-s"附件"pengyl2@finchina.com</etc/passwd
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而用外部的smtp服务器发送邮件的目的。

#vim/etc/mail.rc#文末添加以下
67 set from=justin@51cto.comsmtp=smtp.51cto.com
68 smtp-auth-user=justin@51cto.comsmtp-auth-password=51ctosmtp-auth=login
#source/etc/mail.rc
#mail-s"51cto"15001*****@139.com</etc/passwd

from:发送的邮件地址,对方显示的发件人

smtp:发生的外部smtp服务器的地址

smtp-auth-user:外部smtp服务器认证的用户名

smtp-auth-password:外部smtp服务器认证的用户密码

smtp-auth:邮件认证的方式

wKioL1ZKqgzBo0p-AAA0OtsRubo776.png

猜你在找的CentOS相关文章