博客这么多年了,一直使用Sendmail无碍,但是最近问题频出,导致wordpress评论响应严重推迟!经朋友介绍说这个postfix不错,于是便想来试试。
关于Postfix
- postfix的产生是为了替代传统的sendmail.相较于sendmail,postfix在速度,性能和稳定性上都更胜一筹。现在目前非常多的主流邮件服务其实都在采用postfix. 当我们需要一个轻量级的的邮件服务器是,postfix不失为一种选择。
- postfix是免费的:postfix想要作用的范围是广大的Internet用户,试图影响大多数的Internet上的电子邮件系统,因此它是免费的。
- 更快:postfix在性能上大约比sendmail快三倍。一部运行postfix的台式PC每天可以收发上百万封邮件。
- 兼容性好:postfix是sendmail兼容的,从而使sendmail用户可以很方便地迁移到postfix。Postfix支持/var[/spool]/mail、/etc/aliases、 NIS、和 ~/.forward 文件。
- 更健壮:postfix被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时,postfix会自动减少运行进程的数目。当处理的邮件数目增长时,postfix运行的进程不会跟着增加。
- 更灵活:postfix是由超过一打的小程序组成的,每个程序完成特定的功能。你可以通过配置文件设置每个程序的运行参数。
- 安全性:postfix具有多层防御结构,可以有效地抵御恶意入侵者。如大多数的postfix程序可以运行在较低的权限之下,不可以通过网络访问安全性相关的本地投递程序等等。
关闭Sendmail且卸载Sendmail
# 卸载Sendmail
service sendmail stop
chkconfig sendmail off
rpm -qa | grep sendmail | xargs rpm -e
安装Postfix
redhat6.0以上版本应该是默认集成了postfix服务的,假如没有安装的话,可以手动安装。
# 查看是否安装
rpm -qa | grep postifx
# 安装Postfix
yum install postfix
更改默认MTA为Postfix
# 更改MTA为Postmail
/usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix
# 检查是否生效
alternatives --display mta
配置Postfix
# 配置main.cf
vi /etc/postfix/main.cf
# 修改如下参数
myhostname = mail.bcsytv.com
mydomain = bcsytv.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.100.10/28, 127.0.0.0/8
relay_domains =
home_mailbox = Maildir/
配置文件解释
- 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:该参数设置邮箱路径与用户目录有关,也可以指定要使用的邮箱风格。
启动Postfix并加入自启动
service postfix status #检测,若已启动会列出其PID,如下:
master (pid 4201) is running...
#若未启动,执行以下命令:
service postfix start
#增加为自启动
chkconfig postfix on
配置php.ini
sendmail_path = /usr/sbin/sendmail -t -i
文章评论