2020 二月 29 , 星期六
Home / 系统环境 / linux / CentOS 6.4 Linux系统 搭建 Postfix 邮件服务

CentOS 6.4 Linux系统 搭建 Postfix 邮件服务

需求说明

这次想要做的功能,只是为了给客户发送订阅邮件,也就是只有发送邮件,没有接收邮件的功能。如果不需要接收邮件的功能,尽量关闭接收外来邮件功能,危害多多。比如,大量垃圾邮件的涌入会爆满你的磁盘,安全方面也会存在隐患。

以前发送邮件一直都在用 Sendmail 服务,最近看到 Postfix,研究了下,发现比较 Sendmail 安装配置简单,而且效率非常高。公司最近也在开发邮件营销的功能,所以细心研究了下 Postfix 的安装和配置。

Postfix 介绍

postfix 是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的, 大约有100万用户使用sendmail,每天投递上亿封邮件。这真实一个让人吃惊的数字。Postfix试图更快、更容易管理、更安全,同时还与 sendmail保持足够的兼容性。

Postfix 邮件服务相对于 Sendmail 邮件服务而言,效率更高。Postfix 邮件系统完全兼容 Sendmail,下面来具体说说它的优点:

1. Postfix 是免费的。因为它试图让更多的网络用户使用它,所以它是免费的。

2. Postfix 比 Sendmail 更快,官方说大约可以快上3倍,本人没有测试过,一台运行 Postfix 的台式 PC 机,每天可以收发上百万封邮件。(这也是本人选择它的目的)

3. 兼容性好,Postfix 与 Sendmail 完全兼容,这样 Sendmail 用户就可以很容易的把服务迁移到 Postfix 上。

4. Postfix 的健壮性。Postfix 被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时,Postfix 会自动减少运行进程的数目。当处理的邮件数目增长时,Postfix 运行的进程不会跟着增加。

5. Postfix 的灵活性。Postfix 是由超过一打的小程序组成的,每个程序完成特定的功能。你可以通过配置文件设置每个运行程序的参数。

6. Postfix 的安全性更高。Postfix 具有多层防御结构,可以有效地抵御恶意入侵者。如大多数的 Postfix 程序可以运行在较低的权限之下,不可以通过网络访问与安全性相关的本地投递程序等。(使用较低权限的用户执行程序会大大提高系统的安全性)

添加MX记录

由于MX记录添加后,可能生效要等待一段时间(通常为数分钟或数十分钟,也可能马上生效),所以在安装配置前,我们首先为域名添加MX记录。添加方法也会因域名ISP的不同而不同,但大致信息如下:

主机记录记录类型记录值MX优先级TTL
mailA192.168.1.1-600
@MXmail.example.com.10600

mail为别名,10为优先度。这个别名指向服务器的IP地址。(如有疑问或需要帮忙请直接留言求助)

DNSPOD设置示例:

确认MX记录的添加是否生效的方法:

命令如下:

1[root@example.com ~]# host example.com
2example.com has address 192.168.1.1
3example.com mail is handled by 10 mail.example.com.
4[root@example.com ~]#

Postfix 安装

1. CentOS 6.0 以上版本 默认已经安装 Postfix服务 并随着系统的启动而启动。(CentOS 6.0 以上版本请直接略过本节,直接查看如何配置)

2. CentOS 6.0 以下或RedHat的系统,它默认安装及启动的是 Sendmail 服务,这里我们要先关闭它,并配置为不随着系统的启动而启动,命令如下:

1service sendmail stop
2chkconfig sendmail off

3. yum 安装 Postfix 软件包,命令如下:

1yum -y install postfix

安装完成后我们可以用命令查看其相关路径和文件,命令如下:

1rpm -ql postfix

4. 配置 Postfix 的相关文件,它的主要配置文件为 /etc/postfix/mail.cf。
修改任何配置文件前,请先备份一下,以防修改失败后无法恢复。(这是个好习惯哦)

1# 备份配置文件
2cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
1vi /etc/postfix/main.cf

设置运行 Postfix 服务的邮件主机的主机名、域名,如下所示:

1# main.cf 第77行附近
2myhostname = mail.example.com
1# main.cf 第85行附近
2mydomain = example.com

设置由本机寄出的邮件所使用的域名或主机名称,如下所示:

1# main.cf 第102行附近,这里使用的是 mydomain 的值,也可以自己设置值,如:myrogin = example.com
2myorigin = $mydomain

设置 Postfix 服务监听的网络接口,如下所示:

1# main.cf 第119行附近,填写 localhost,只允许通过 localhost 或 127.0.0.1 发送
2# 如果邮件服务器是专门为其它服务器服务的,请直接填写 all,如
3# inet_interfaces = all
4inet_interfaces = localhost

设置可接收邮件的主机名称或域名,如下所示:

1# main.cf 第167行附近,我的需求是只发送邮件,不接收外来邮件,所以填写 localhost
2mydestination = localhost

设置可转发哪些网络的邮件,如下所示:

1# main.cf 第270行附近,主转发本机的
2mynetworks = 127.0.0.0/8, hash:/etc/postfix/access

设置可转发哪些网域(当然这个也必须能由DNS正常解析才行)的邮件,此选项针对上下级MTA而言,区别于 Postfix 的 access,一般选择默认选项即可,如下所示:

1# main.cf 第301行附近
2relay_domains = $mydestination

5. 配置完成后,我们检查一下 Postfix 语法,然后启动它。
用以下命令检查 Postfix 服务的语法:

1/usr/sbin/postconf -n

启动 Postfix 邮件,并配置为自启动服务:

1service postfix start
2chkconfig postfix on

测试发送邮件

简单的用命令行的方式,给自己发送一封邮件,命令如下:

1# example@126.com 换成自己的邮箱地址
2echo 'test' | mail -s 'test' example@126.com

原文地址http://www.gretheer.com/2013/06/64-centos-linux-postfix-email-smtp.html

Check Also

supervisor pkg_resources.DistributionNotFound: meld3>=0.6.5

换了台机器跑superviso ...

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>