Centos 下安装 Postfix 替换 sendmail 发送邮件

[ 博客 ]

Sendmail是第一种MTA软件。这个软件到目前为止仍是最知名的和应用最广泛的软件。但 Sendmail 在设计上缺乏安全观念,速度也不是非常快,而且这个软件最令人讨厌的特点是非常复杂,不容易设置。实际上,Sendmail 的设置错误与很多的邮件路由问题有关。设置 Sendmail 的一个主要指令说明书长达1000页。为了更方便地从 sendmail 过渡到 Postfix,作者 Venema 特意把 Postfix 软件设计的兼容 sendmail。Postfix 能够利用标准的 sendmail 安装使用的同样的基础设置(如邮件队列和文件夹的位置等)。Postfix 唯一没有采用的 sendmail 组件就是 Sendmail 那声名狼籍的配置文件。Postfix 性能要比同类的服务器产品速度快三倍以上,效率更高些,更灵活和安全。

以下是 Centos 下安装 Postfix 替换 sendmail 的方法:

1,如果装了sendmail 的话,先卸载了。

yum remove sendmail

2,安装 Postfix

yum install postfix

3,更改默认 MTA 为 Postfix:

/usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix

4,再次检查下是否将 MTA 改为 Postfix 了:

alternatives --display mta

5,配置 Postfix,vi 编辑 main.cf

vi /etc/postfix/main.cf

打开后分别找到以下几项,将其前面的#去掉,并做配置:

 myhostname = mail.jeffdesign.net
 mydomain = jeffdesign.net
 myorigin = $mydomain
 inet_interfaces = all
 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
 mynetworks = 192.168.100.10/28, 127.0.0.0/8
 relay_domains =
 home_mailbox = Maildir/

以上几个设置项不在同一个位置,需要分别寻找,并进行更改,其中相应的域名请改为自己的地址,mynetworks 我是没有做改变,自动就有的。

配置文件解释:

mydomain:
mydomain 参数是指email服务器的域名,请确保为正式域名(如centos.bz)

myhostname:
myhostname 参数是指系统的主机名称(如我的服务器主机名称是mail.centos.bz)

myorigin:
myorigin 参数指定本地发送邮件中来源和传递显示的域名。在我们的例子中,mydomain 是 centos.bz,也是我的域名。
对于下面的一行,我们的邮件地址是 user@centos.bz 而不是 user@mail.centos.bz。

myorigin = $mydomain

mynetworks:
mynetworks 参数指定受信任 SMTP 的列表,具体的说,受信任的 SMTP 客户端允许通过 Postfix 传递邮件。

mydestination:
mydestination 参数指定哪些邮件地址允许在本地发送邮件。这是一组被信任的允许通过服务器发送或传递邮件的IP地址。用户试图通过发送从此处未列出的 IP 地址的原始服务器的邮件将被拒绝。

inet_interfaces:
inet_interfaces 参数设置网络接口以便 Postfix 能接收到邮件。

relay_domains:
该参数是系统传递邮件的目的域名列表。如果留空,我们保证了我们的邮件服务器不对不信任的网络开放。

home_mailbox:
该参数设置邮箱路径与用户目录有关,也可以指定要使用的邮箱风格。

6,检测并启动Postfix

service postfix status

//检测,若已启动会列出其 PID,如下:

master (pid 25579) is running...

//若未启动,执行以下命令:

service postfix start

7,设置开机启动

chkconfig postfix on

我自己的安装到此为止就结束了,因为我只需要的是mail功能,并非搭建邮件服务器。此时测试邮件发送,OK。

参考资料:http://www.gongzi.org/centos-install-postfix-sendmail.html

补充:如果你之前没有配置过 sendmail 组件,那你很可能没有修改 php.ini 的邮件发送路径,那样可能无法发送邮件。

所以你需要配置 php.ini,填写 sendmail 的绝对路径:

使用命令打开编辑 php.ini

vi /usr/local/php/etc/php.ini

输入?sendmail_path 查找定位(或者手动跳转找到 sendmail_path),你会发现默认是下面的代码

;sendmail_path =

i 进入编辑,将这行修改为

sendmail_path = /usr/sbin/sendmail -t -i

Esc 键退出编辑,输入 :wq 保存退出

5.重启 php-fpm进程

/etc/init.d/php-fpm restart

发表评论

您的个人信息将得到保护,邮箱不会被公开。