postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封邮件。这真是一个让人吃惊的数字。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。
1、首先设置hostname
事先设置好hostname的话,Postfix可以自动配置好很多参数,节省时间。我们要假设的网站域名为100p.com,要搭建独立的邮件服务器,就把主机名设置为mail.100p.com。
#echo 'mail.100p.com' > /etc/hostname
#hostname -F /etc/hostname
2、安装Postfix
#rpm -ivh *.rpm
我们的系统一般默认已经安装好Postfix。
#rpm -qa | grep postfix
postfix-2.6.6-6.el6_5.x86_64
3、基本配置
Postfix的配置文件位于/etc/postfix/main.cf。一般有以下几个重要参数需要设置:
*myhostname* //主机名
myhostname = mail.100p.com
*mydomain* //使用邮件域
mydomain = 100p.com //mydomain 设置本地网络的邮件域
*myorigin* //外发邮件时发件人的邮件域名
myorigin = $mydomain //在通过Postfix发送邮件的时候,如果From字段不完整,Postfix会根据myorigin的值将地址补全为*@mail.100p.com,此处可以填$mydomain 或者 $myhostname
*端口* //端口扫描监控全部的端口
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
*mydestination* //可接受邮件地址域名
mydestination = $myhostname,$mydomain //mydestination指定了postfix在收到这些域名地址为目标的邮件时,作为接受方收下邮件。如果收到的邮件既不符合转发规则,又不符合接受规则,则拒绝收信。
*mynetworks* //需要收发的客户端的地址
mynetworks = 0.0.0.0 //mynetworks指定了本地网络的IP段,默认只包含主机自己,你可以添加需要收发的客户端的地址。
4、 重启服务
配置完postfix的主要参数之后,需要重启postfix服务,重启方法如下:
#service postfix restart
#/etc/init.d/postfix restart
服务重启失败,postfix - master dead but pid file exists
1 remove /var/spool/postfix/pid/master.pid
如果还存在这个问题,可以查看端口
1 # netstat -lnp | grep :25
杀死进程,重新启动postfix服务
5、安装dovecot,启动服务
1 #service devocot restart
配置文件,添加一下内容
# vi /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp
mail_location = mbox:/var/mail:INBOX=/var/mail/%u
# vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
#vi /etc/dovecot/conf.d/10-ssl.confssl = no
6、测试收邮件,我们搭建的邮件服务器的地址为20.0.2.16,我们使用telnet进行测试:
[root@gio020 postfix]# telnet 20.0.2.16 25
Trying 20.0.2.16...
Connected to gio016 (20.0.2.16).
Escape character is '^]'.
220 mail.100p.com ESMTP Postfix
*MAIL FROM: [email protected]* // *为要输入的内容* 发送的邮件地址
250 2.1.0 Ok
*RCPT TO: bmc* // 接受的用户名
250 2.1.5 Ok
*DATA* // 发送的内容
354 End data with .
*This is a test mail.*
*.* // 输入要发送的内容,以点号结束
250 2.0.0 Ok: queued as 172B162C17A
*quit* // quit退出测试
221 2.0.0 Bye
发送成功之后就可以再gio016的/var/mail/mbc下查看到刚才发送的邮件
邮件内容如下:
From [email protected] Thu Sep 22 16:31:56 2016
Return-Path:
X-Original-To: bmc
Delivered-To: [email protected]
Received: from gio020 (gio020 [20.0.2.20])
by mail.100p.com (Postfix) with SMTP id 172B162C17A
for ; Thu, 22 Sep 2016 16:31:12 +0800 (CST)
DATA
This is a test mail.