CentOS 6.5 安装 SendMail 配置邮件服务

CentOS 6.5 安装 SendMail 配置邮件服务

CentOS 安装配置 SendMail + Shell 脚本自动统计网站访问日志 能够定时的了解网站的运行情况,相当的方便。
一.安装 SendMail


yum install -y sendmail
yum install -y sendmail-cf

二. 安装 Salauthd


//使用SMTP认证,需要安装saslauthd服务
yum install -y saslauthd

//启动saslauthd服务 
service saslauthd start

//设置saslauthd开机自动启动
chkconfig saslauthd on

三. 配置 SendMail


//配置saslauthd 
vi /etc/mail/sendmail.mc

1.在该配置文件中,将如下两行的注释去掉:将下面两行的dnl去掉。在sendmail文件中,dnl表示该行为注释行。


dnl TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

TRUST_AUTH_MECH的作用是使sendmail不管access文件中如何设置,都能relay那些通过EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式验证的邮件,注意这里是对需要relay的邮件进行验证,这点很重要,只有这样通过验证的邮件才会被relay以防止sendmail服务器被滥用。

confAUTH_MECHANISMS的作用是确定系统的认证方式。Outlook Express支持的认证方式是LOGIN。

2.设置Sendmail服务的网络访问权限,如果仅仅是本机使用,就不用配置,如果是允许外部机器访问,可以进行限制。


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的一个特定网段地址。

3.进行信息伪装,要不然发过去邮件如root@izGd634der(服务器名称),会被邮件服务器拒收的。具体操作如下:


//此句去掉注释,修改为:MASQUERADE_AS('yourdomain.com')dnl
dnl MASQUERADE_AS('mydomain.com')dnl //是否对信息作伪装
//去掉注释
dnl FEATURE(masquerade_envelope)dnl //是否对整个域(包括子域)做伪装 
//去掉注释
dnl FEATURE(masquerade_entire_domain)dnl
//去掉注释
dnl MASQUERADE_DOMAIN(localhost)dnl //对localhost域做伪装
//去掉注释
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl //将locahost.com域伪装成yourdomain.com

保存文件后,需要更改hostname为你设置的域名,要不然发到邮件会因为发信人邮箱名不合格被拒收。


hostname yourdomain.com

4.生成配置文件

Sendmail的配置文件由m4来生成,m4工具在sendmail-cf包中。如果系统无法识别m4命令,说明sendmail-cf软件包没有安装。


m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

四. 启动 SendmMail


chkconfig sendmail on //开机启动
service sendmail start

五. 测试发送邮件

先创建一个内容文件,然后输入一些内容,最好是英文,要不然汉字会乱码。写完后wq保存退出。


vim content.txt

发送邮件给你邮箱,命令如下:


mail -s "Here is the subject" receiver_mail_address@163.com < content.txt

然后我就成功收到了邮件,如果邮件被退回,/var/spool/mail/root里会出现退信信息,可以帮我我们发现错误。我当时是因为发信人名称不合格被拒收的。

六. 用 PHP 发送邮件


vim /var/www/html/mail.php  //创建测试文件
//写入php代码
<?php
  mail('receiver_mail_address@163.com','subject','message body');
  echo 'successful send mail';
?>

简书 / @TyiMan

七.mail: command not found

如何命令行发送邮件时提示:bash: mail: command not found 则需要安装相应的软件包。


yum -y install mailx

如此,基本上问题就解决了。

相关推荐

发表评论

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

CentOS 6.5 安装 SendMail 配置邮件服务
返回顶部

显示

忘记密码?

显示

显示

获取验证码

Close