postfix邮件服务器搭建
2015-04-24 12:04
155 查看
在大多情况下,对于很多的系统(像CentOS)Sendmail是默认的MTA(邮件传输代理),但它相当的难配置与维护(即使在过去的几年进行改进)。而Postfix配置简单,且效率高。
准备工作
1. 为邮件服务器添加DNS解析
虽然不加DNS解析也能把邮件发出去,但会被大多数邮件服务器当作垃圾邮件。根据我们的实际经验,需要添加三条DNS解析记录:A记录、MX记录、TXT记录。比如域名cnblogs.info,对应的DNS记录如下:
![](http://pic002.cnblogs.com/images/2012/1/2012121221074820.jpg)
yum install postfix
在CentOS系统一般都自带sendmail的,如果你不需要了,可以使用以下命令删除:
rpm -e sendmail
我们先来检查默认的MTA
alternatives --display mta
mta - status is manual.
link currently points to /usr/sbin/sendmail.sendmail
/usr/sbin/sendmail.sendmail - priority 90
slave mta-pam: /etc/pam.d/smtp.sendmail
slave mta-mailq: /usr/bin/mailq.sendmail
slave mta-newaliases: /usr/bin/newaliases.sendmail
slave mta-rmail: /usr/bin/rmail.sendmail
slave mta-sendmail: /usr/lib/sendmail.sendmail
slave mta-mailqman: /usr/share/man/man1/mailq.sendmail.1.gz
slave mta-newaliasesman: /usr/share/man/man1/newaliases.sendmail.1.gz
slave mta-aliasesman: /usr/share/man/man5/aliases.sendmail.5.gz
slave mta-sendmailman: /usr/share/man/man8/sendmail.sendmail.8.gz
/usr/sbin/sendmail.postfix - priority 30
slave mta-pam: /etc/pam.d/smtp.postfix
slave mta-mailq: /usr/bin/mailq.postfix
slave mta-newaliases: /usr/bin/newaliases.postfix
slave mta-rmail: /usr/bin/rmail.postfix
slave mta-sendmail: /usr/lib/sendmail.postfix
slave mta-mailqman: /usr/share/man/man1/mailq.postfix.1.gz
slave mta-newaliasesman: /usr/share/man/man1/newaliases.postfix.1.gz
slave mta-aliasesman: /usr/share/man/man5/aliases.postfix.5.gz
slave mta-sendmailman: /usr/share/man/man1/sendmail.postfix.1.gz
Current `best' version is /usr/sbin/sendmail.sendmail.
我们从以上看出,现在默认的MTA是sendmail。所以我们需要键入以下命令更新MTA为Postfix。
/usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix
再次检查看MTA是不是改为Postfix了。
alternatives --display mta
Postfix配置文件主要是两个master.cf和main.cf,这里我们只需要配置main.cf,即/etc/postfix/main.cf。
编辑main.cf文件
vim /etc/postfix/main.cf
在文件main.cf找到以下的几行并按照下面的更改好。
myhostname = mail.1a-centosserver.com
mydomain = 1a-centosserver.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.13.0/24, 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:
该参数设置邮箱路径与用户目录有关,也可以指定要使用的邮箱风格。
1、检查Postfix是否已经启动
service postfix status
master (pid 4073) is running...
如果没有使用service postfix start启动
2、检测默认smtp端口25是否已经监听
netstat -an | grep 25
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
3、设置postfix开机启动
chkconfig postfix on
4、开始测试postfix是否工作正常。
telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 mail.centos.bz ESMTP Postfix
ehlo mail
250-mail.centos.bz
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:<jane>
250 2.1.0 Ok
rcpt to:<james>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
This is a test mail send from Jane
.
250 2.0.0 Ok: queued as 8E93F27DF3
quit
221 2.0.0 Bye
Connection closed by foreign host.
邮件发送到哪里了?所有的邮件已经发送到/home/user/Maildir/new。我们以上的例子,邮件已经发送到/home/james/Maildir/new。我们可以使用cat命令查看。
设置邮件别名可以使多个用户收到来自一个用户(如root)发送的邮件。
1、配置邮件别名
邮件别名的配置文件在/etc/aliases里,格式如下:
[Format]
Receiving Account or other aliases : recipient A, recipient B, recipient C ..
例1:重新发送邮件到另一用户
root:root,james
上面的例子表示,root用户的邮件对于用户james和root都可以接收到。
例2:设置群邮件
class2011: james, ann, mark
上面的例子表示我们设置了群邮件名class2011.当tutor发送一封邮件到class2011@centos.bz时,一群用户(如james,ann,mark)都会收到邮件。
2、使用“newaliases”命令激活邮件别名功能
当我们编辑/etc/aliases文件后,必须执行“newaliases”命令来更新别名数据库。
为了让用户能在本地机器下载邮件,你必须在你的CentOS Linux邮件服务器安装设置POP或IMAP。Dovecot是适用CentOS
Linux邮件系统有名的imap/pop服务器之一,它支持maildir和mbox格式。
安装配置Dovecot
首先检测dovecot软件包是否已经安装
rpm -qa dovecot
否则,你可以使用yum命令安装
yum -y install dovecot
Dovecot的配置文件在/etc/dovecot.conf。我们只需要改变少量的代码就可以让POP3工作。
vim /etc/dovecot.conf
# Protocols we want to be serving: imap imaps pop3 pop3s
# If you only want to use dovecot-auth, you can set this to "none".
protocols = imap imaps pop3 pop3s
删除protocols行前面的“#”以激活imap imaps pop3和pop3s服务。
启动dovecot服务。
service dovecot start
设置dovecot开机启动。
chkconfig dovecot on
测试Dovecot服务。
1、使用telnet检测110(POP3)和143(IMAP)端口
telnet 127.0.0.1 110
Trying 127.0.0.1...
Connected to mail.centos.bz (127.0.0.1).
Escape character is '^]'.
+OK Dovecot ready.
quit
+OK Logging out
Connection closed by foreign host.
telnet 127.0.0.1 143
Trying 127.0.0.1...
Connected to mail.centos.bz (127.0.0.1).
Escape character is '^]'.
* OK Dovecot ready.
2、使用“ps aux | grep dovecot”命令来显示dovecot守护进程
ps aux | grep dovecot
root 10322 0.0 0.0 1868 576 ? Ss 12:17 0:00 /usr/sbin/dovecot
root 10323 0.0 0.2 7692 1864 ? S 12:17 0:00 dovecot-auth
dovecot 10325 0.0 0.2 4884 1744 ? S 12:17 0:00 pop3-login
dovecot 10326 0.0 0.2 4884 1744 ? S 12:17 0:00 pop3-login
dovecot 10328 0.0 0.2 4888 1748 ? S 12:17 0:00 imap-login
dovecot 10330 0.0 0.2 4888 1752 ? S 12:17 0:00 imap-login
dovecot 10332 0.0 0.2 4884 1740 ? S 12:17 0:00 pop3-login
dovecot 10338 0.0 0.2 4888 1752 ? S 12:19 0:00 imap-login
root 10347 0.0 0.0 3912 672 pts/3 R+ 12:23 0:00 grep dovecot
Postfi的发信认证过程
![](http://s15.sinaimg.cn/middle/70c9c4b44d9ccbc7eea1e&690)
1、编辑 /etc/dovecot.conf,确保auth default区域有如下设置值:
auth default {
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
mechanisms = plain login
}
2、编辑/etc/postfix/main.cf,增加如下代码启用sasl认证。
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated, reject_unauth_destination
broken_sasl_auth_clients = yes
3、重启服务
service postfix restart
service dovecot restart
现在你可以使用邮件客户端代理软件和系统用户及密码来连接我们的Dovecot服务器了。
署并配置Squirrelmail
Postfix支持使用的Web邮件系统有很多种,如OpenWebmail、iGENUS、Extmail、SquirrelMail等。SquirrelMail是使用PHP开发的一套网页程序,可以与postfix、Dovecot很好地协作,通过Web界面提供邮件发送,接收和管理操作。
![](http://s3.sinaimg.cn/middle/70c9c4b44d9ccbd029932&690)
7. 将SquirrelMail部署到网站目录
![](http://s13.sinaimg.cn/middle/70c9c4b44d9ccbd07b7cc&690)
8. 创建数据目录、附件目录
通过浏览器访问Web邮箱时需要提交邮件内容、上传附件等相关操作,因此需要创建相应的数据目录、附件目录、并确保网站运行用户(daemon)对上述目录由写入权限。
![](http://s16.sinaimg.cn/middle/70c9c4b44d9ccbd02da9f&690)
9. 创建主配置文件config.php:位于子目录config/中,主配置文件通常并不存在,需要参考默认配置手动创建。适当修改配置文件,设置界面语言,收发信服务器地址,数据目录和附件目录等相关信息。
![](http://s7.sinaimg.cn/middle/70c9c4b44d9ccbd174e26&690)
![](http://s15.sinaimg.cn/middle/70c9c4b44d9ccbd126c8e&690)
10. 访问Web邮箱系统
确认Web服务已经运行,通过浏览器访问http://www.beent.com/webmail/,可以看到SquirrelMail提供的Web邮箱登录界面。
![](http://s1.sinaimg.cn/middle/70c9c4b44d9ccbd21bc60&690)
11. 在企业中,几乎不用这个,这里我就不过多的介绍。
另一个详细安装方法:http://blog.sina.com.cn/s/blog_70c9c4b40101atei.html
转载请标明文章来源:《https://www.centos.bz/2011/06/centos-install-setup-postfix/》
准备工作
1. 为邮件服务器添加DNS解析
虽然不加DNS解析也能把邮件发出去,但会被大多数邮件服务器当作垃圾邮件。根据我们的实际经验,需要添加三条DNS解析记录:A记录、MX记录、TXT记录。比如域名cnblogs.info,对应的DNS记录如下:
![](http://pic002.cnblogs.com/images/2012/1/2012121221074820.jpg)
一、安装Postfix
yum install postfix在CentOS系统一般都自带sendmail的,如果你不需要了,可以使用以下命令删除:
rpm -e sendmail
二、更改默认邮件传输代理(MTA)
我们先来检查默认的MTAalternatives --display mta
mta - status is manual.
link currently points to /usr/sbin/sendmail.sendmail
/usr/sbin/sendmail.sendmail - priority 90
slave mta-pam: /etc/pam.d/smtp.sendmail
slave mta-mailq: /usr/bin/mailq.sendmail
slave mta-newaliases: /usr/bin/newaliases.sendmail
slave mta-rmail: /usr/bin/rmail.sendmail
slave mta-sendmail: /usr/lib/sendmail.sendmail
slave mta-mailqman: /usr/share/man/man1/mailq.sendmail.1.gz
slave mta-newaliasesman: /usr/share/man/man1/newaliases.sendmail.1.gz
slave mta-aliasesman: /usr/share/man/man5/aliases.sendmail.5.gz
slave mta-sendmailman: /usr/share/man/man8/sendmail.sendmail.8.gz
/usr/sbin/sendmail.postfix - priority 30
slave mta-pam: /etc/pam.d/smtp.postfix
slave mta-mailq: /usr/bin/mailq.postfix
slave mta-newaliases: /usr/bin/newaliases.postfix
slave mta-rmail: /usr/bin/rmail.postfix
slave mta-sendmail: /usr/lib/sendmail.postfix
slave mta-mailqman: /usr/share/man/man1/mailq.postfix.1.gz
slave mta-newaliasesman: /usr/share/man/man1/newaliases.postfix.1.gz
slave mta-aliasesman: /usr/share/man/man5/aliases.postfix.5.gz
slave mta-sendmailman: /usr/share/man/man1/sendmail.postfix.1.gz
Current `best' version is /usr/sbin/sendmail.sendmail.
我们从以上看出,现在默认的MTA是sendmail。所以我们需要键入以下命令更新MTA为Postfix。
/usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix
再次检查看MTA是不是改为Postfix了。
alternatives --display mta
三、配置Postfix
Postfix配置文件主要是两个master.cf和main.cf,这里我们只需要配置main.cf,即/etc/postfix/main.cf。编辑main.cf文件
vim /etc/postfix/main.cf
在文件main.cf找到以下的几行并按照下面的更改好。
myhostname = mail.1a-centosserver.com
mydomain = 1a-centosserver.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.13.0/24, 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 SMTP连接
1、检查Postfix是否已经启动service postfix status
master (pid 4073) is running...
如果没有使用service postfix start启动
2、检测默认smtp端口25是否已经监听
netstat -an | grep 25
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
3、设置postfix开机启动
chkconfig postfix on
4、开始测试postfix是否工作正常。
telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 mail.centos.bz ESMTP Postfix
ehlo mail
250-mail.centos.bz
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:<jane>
250 2.1.0 Ok
rcpt to:<james>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
This is a test mail send from Jane
.
250 2.0.0 Ok: queued as 8E93F27DF3
quit
221 2.0.0 Bye
Connection closed by foreign host.
邮件发送到哪里了?所有的邮件已经发送到/home/user/Maildir/new。我们以上的例子,邮件已经发送到/home/james/Maildir/new。我们可以使用cat命令查看。
五、邮件别名设置
设置邮件别名可以使多个用户收到来自一个用户(如root)发送的邮件。1、配置邮件别名
邮件别名的配置文件在/etc/aliases里,格式如下:
[Format]
Receiving Account or other aliases : recipient A, recipient B, recipient C ..
例1:重新发送邮件到另一用户
root:root,james
上面的例子表示,root用户的邮件对于用户james和root都可以接收到。
例2:设置群邮件
class2011: james, ann, mark
上面的例子表示我们设置了群邮件名class2011.当tutor发送一封邮件到class2011@centos.bz时,一群用户(如james,ann,mark)都会收到邮件。
2、使用“newaliases”命令激活邮件别名功能
当我们编辑/etc/aliases文件后,必须执行“newaliases”命令来更新别名数据库。
六、POP/ IMAP设置
为了让用户能在本地机器下载邮件,你必须在你的CentOS Linux邮件服务器安装设置POP或IMAP。Dovecot是适用CentOSLinux邮件系统有名的imap/pop服务器之一,它支持maildir和mbox格式。
安装配置Dovecot
首先检测dovecot软件包是否已经安装
rpm -qa dovecot
否则,你可以使用yum命令安装
yum -y install dovecot
Dovecot的配置文件在/etc/dovecot.conf。我们只需要改变少量的代码就可以让POP3工作。
vim /etc/dovecot.conf
# Protocols we want to be serving: imap imaps pop3 pop3s
# If you only want to use dovecot-auth, you can set this to "none".
protocols = imap imaps pop3 pop3s
删除protocols行前面的“#”以激活imap imaps pop3和pop3s服务。
启动dovecot服务。
service dovecot start
设置dovecot开机启动。
chkconfig dovecot on
测试Dovecot服务。
1、使用telnet检测110(POP3)和143(IMAP)端口
telnet 127.0.0.1 110
Trying 127.0.0.1...
Connected to mail.centos.bz (127.0.0.1).
Escape character is '^]'.
+OK Dovecot ready.
quit
+OK Logging out
Connection closed by foreign host.
telnet 127.0.0.1 143
Trying 127.0.0.1...
Connected to mail.centos.bz (127.0.0.1).
Escape character is '^]'.
* OK Dovecot ready.
2、使用“ps aux | grep dovecot”命令来显示dovecot守护进程
ps aux | grep dovecot
root 10322 0.0 0.0 1868 576 ? Ss 12:17 0:00 /usr/sbin/dovecot
root 10323 0.0 0.2 7692 1864 ? S 12:17 0:00 dovecot-auth
dovecot 10325 0.0 0.2 4884 1744 ? S 12:17 0:00 pop3-login
dovecot 10326 0.0 0.2 4884 1744 ? S 12:17 0:00 pop3-login
dovecot 10328 0.0 0.2 4888 1748 ? S 12:17 0:00 imap-login
dovecot 10330 0.0 0.2 4888 1752 ? S 12:17 0:00 imap-login
dovecot 10332 0.0 0.2 4884 1740 ? S 12:17 0:00 pop3-login
dovecot 10338 0.0 0.2 4888 1752 ? S 12:19 0:00 imap-login
root 10347 0.0 0.0 3912 672 pts/3 R+ 12:23 0:00 grep dovecot
七、配置使用Dovecot SASL进行SMTP验证
1、编辑 /etc/dovecot.conf,确保auth default区域有如下设置值:auth default {
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
mechanisms = plain login
}
2、编辑/etc/postfix/main.cf,增加如下代码启用sasl认证。
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated, reject_unauth_destination
broken_sasl_auth_clients = yes
3、重启服务
service postfix restart
service dovecot restart
现在你可以使用邮件客户端代理软件和系统用户及密码来连接我们的Dovecot服务器了。
署并配置Squirrelmail
Postfix支持使用的Web邮件系统有很多种,如OpenWebmail、iGENUS、Extmail、SquirrelMail等。SquirrelMail是使用PHP开发的一套网页程序,可以与postfix、Dovecot很好地协作,通过Web界面提供邮件发送,接收和管理操作。
7. 将SquirrelMail部署到网站目录
8. 创建数据目录、附件目录
通过浏览器访问Web邮箱时需要提交邮件内容、上传附件等相关操作,因此需要创建相应的数据目录、附件目录、并确保网站运行用户(daemon)对上述目录由写入权限。
9. 创建主配置文件config.php:位于子目录config/中,主配置文件通常并不存在,需要参考默认配置手动创建。适当修改配置文件,设置界面语言,收发信服务器地址,数据目录和附件目录等相关信息。
10. 访问Web邮箱系统
确认Web服务已经运行,通过浏览器访问http://www.beent.com/webmail/,可以看到SquirrelMail提供的Web邮箱登录界面。
11. 在企业中,几乎不用这个,这里我就不过多的介绍。
另一个详细安装方法:http://blog.sina.com.cn/s/blog_70c9c4b40101atei.html
转载请标明文章来源:《https://www.centos.bz/2011/06/centos-install-setup-postfix/》
相关文章推荐
- Centos7.1下用Postfix和Dovecot搭建邮件服务器
- [转]阿里云CentOS Linux服务器上用postfix搭建邮件服务器
- postfix+dovecot搭建邮件服务器
- Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
- 【Mail】搭建邮件服务器(LAMP+Postfix+Dovcot+PostfixAdmin+Roundcubemail)
- Linux总结笔记9-搭建Postfix邮件服务器
- Postfix邮件服务器搭建(四)
- RedHat el5.0 搭建 Postfix 邮件服务器系统
- Postfix邮件服务器搭建及配置
- Postfix简单企业邮件服务器搭建步骤-入门级
- postfix+dovecot+squrrelmail邮件服务器的搭建 推荐
- CentOS6.5上简易搭建Postfix、Dovecot、Sasl、OPenwebmail局域网邮件服务器以及DNS服务器
- postfix邮件服务器搭建
- CentOS7下搭建postfix邮件服务器实现extmail的web访问
- RedHat el5.0 搭建 Postfix 邮件服务器系统
- (RHCE)3 postfix邮件服务器搭建
- Postfix+Dovecot+MySQL搭建邮件服务器图文解析
- RedHat el5.0 搭建 Postfix 邮件服务器系统<一>
- CentOS下的Postfix邮件服务器搭建
- Postfix邮件服务器搭建(五)