CentOS 系统默认不能发送邮件,需要发送邮件可以安装一个sendmail程序。
yum -y install sendmail sendmail-cf m4
systemctl start sendmail.service
ps -ef|grep sendmail
root 24426 1 0 06:28 ? 00:00:00 sendmail: accepting connections
smmsp 24453 1 0 06:28 ? 00:00:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
root 24457 24363 0 06:28 pts/2 00:00:00 grep --color=auto sendmail
邮件客户端
[root@localhost]# mail
-bash: mail: command not found
[root@localhost]# yum install mailx -y
Loaded plugins: fastestmirror
配置系统服务
设置Sendmail服务的网络访问权限
vi /etc/mail/sendmail.mc
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
将127.0.0.1改为0.0.0.0,意思是任何主机都可以访问Sendmail服务。
如果仅让某一个网段能够访问到Sendmail服务,将127.0.0.1改为形如192.168.1.0/24的一个特定网段地址。
使用命令行发送邮件
mail -s 'Test mail' [email protected] < body.txt
发送附件,需要安装uuencode软件包,这个程序对二进制文件进行编码使其适合通过邮件进行发送,在CentOS上安装该软件包如下:
yum install sharutils
安装完成后我们就可以来进行附件的发送了,使用如下命令:
uuencode test.txt test | mail -s "hello,see the attachement" [[email protected]](https://mailto:[email protected]) < mail.txt
完成后就可以把text.txt文件作为邮件的附件发送出去了。uuencode有两个参数,第一个是要发送的文件,第二个是显示的文件名称。
修改主机名称
hostname duchaoqun
修改DNS配置文件:
/etc/hosts 中的配置更改成127.0.0.1 duchaoqun.cn
修改sendmail 配置文件
SendMail运行过程是读取/etc/mail/sendmail.cf配置文件,但该文件配置比较复杂,所以一般是配置/etc/mail/sendmail.mc,然后通过以下命令生成sendmail.cf文件
(每次修改sendmail.mc后都必须通过使用该命令后再重启sendmail服务,否则配置不会生效)
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
在/etc/mail/sendmail.mc文件对格式要求非常严格:
每句左边不能有空格
区分大小写
注释在最左边加dnl
每句必须以dnl结束
增加的语句,不能在最后一行
语句中的引号比较奇怪 ` ’
/etc/mail/sendmail.mc 配置文件
要把 LOCAL_DOMAIN(localhost.localdomain’)dnl 改成 LOCAL_DOMAIN(lucifo’)dnl
echo hellasdfasdf |mail -s “Test What is the sendmail” [email protected]
添加域名解析
类似邮件身份证一样的东西,避免被收件人认为是垃圾邮件。
[root@duchaoqun]# vim /etc/mail/local-host-names
duchaoqun.cn
注:先添加一个mail的A记录,然后在添加一个“子域名”为空的MX记录,然后使用nslookup -qt=mx duchaoqun.cn 查看mx记录是否生效。
配置说明参考地址
http://blog.csdn.net/zhaoyingm/article/details/8658372
问题1
mail -s “asdfasdf” [email protected] < parse_result.txt
收到的邮件中包含一个附件,没有正文,其实是parse_result.txt里面有\r\n 符号,但是\r 会被mail识别成二进制文件,所以需要全部替换掉
为了避免这种情况,需要将文本中的\r(也就是^M)全部删除,可以用下面命令删除:
:%s/^M//gc //注意,^M要使用要用 Ctrl +V和Ctrl + M 来输入.