在 CentOS 上安装 Postfix 邮件服务器

10月19日 · 2016年

众所周知,sendmail 发送邮件很慢,安全性也不是那么好,并且很臃肿。现在很多网站都开始用Postfix来替代sendmail发送邮件了。网上关于这方面的文章也很多,这里整合一下,以后备用吧~

postfix

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.huyangjia.com
mydomain = huyangjia.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 168.100.189.0/28, 127.0.0.0/8
relay_domains = $mydestination
home_mailbox = Maildir/

配置文件解释:
mydomain:
mydomain参数是指email服务器的域名,请确保为正式域名(如huyangjia.com)
myhostname:
myhostname参数是指系统的主机名称(如我的服务器主机名称是mail.huyangjia.com)
myorigin:
myorigin参数指定本地发送邮件中来源和传递显示的域名。在我们的例子中,mydomain是huyangjia.com,也是我的域名。
对于下面的一行,我们的邮件地址是user@huyangjia.com而不是user@mail.huyangjia.com。
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

8、配置php.ini(以前配置过mail功能则无须再次配置)

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

输入?sendmail_path 查找定位,修改为以下:

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

重启php-fpm进程

/etc/init.d/php-fpm restart

9、修改发件人邮箱显示

通过以上配置,就可以正常发送邮件了,但是发件人邮箱会是 www@huyangjia.com 这种类型,如果想修改 www 这个参数,比如修改为 admin@huyangjia.com 需要按照下面的步骤操作:

vi /etc/postfix/canonical

添加下一行代码:

www admin@huyangjia.com

保存退出,然后进入到 /etc/postfix/ 目录:

cd /etc/postfix/

执行命令:

postmap canonical

接着编辑 /etc/postfix/main.cf:

vi /etc/postfix/main.cf

一般情况下里面没有canonical_maps这个参数,在空行处添加:

canonical_maps = hash:/etc/postfix/canonical

保存退出,然后重启 postfix:

postfix reload

10、添加DNS解析,降低被判为垃圾邮件的概率。

maildns

特别提示一下。如果出现安装完postfix,但是无法启动或者总提示启动失败,可尝试以下办法:

echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
ldconfig
service postfix restart

下一篇写一下如何配置DKIM 签名。

0 条回应
验证码
输入运算符及数字使等式成立
{{comment.validate_num1}} = {{comment.validate_num2}}
点赞确定
退出登录?
取消 确定