Postfix搭建Linux 邮件服务器

校睿宝培训机构ERP,学员课时管理软件
实验预约管理软件,实验室管理软件,大学、高校实验预约平台
网站日志分析软件,网站访问日志在线分析
哲涛服务器监控软件,IT运维管理软件,CPU、内存、磁盘监控软件

postfix 安装配置详解

张映 发表于 2012-04-17

一,安装postfix,cyrus-sasl,cyrus-imapd

如果yum提示找不到软件包,请换一下源,请参考centos 6推荐使用epel源

  1. [root@localhost ~]# yum install postfix  
  2. [root@localhost ~]# yum install cyrus*  

二,删除了sendmail

  1. [root@localhost ~]# rpm -e sendmail  
  2. 或者  
  3. [root@localhost ~]# yum remove sendmail  

三,更改默认邮件传输代理(MTA)

  1. [root@localhost sasl2]# alternatives --config mta  
  2.   
  3. 共有 1 个程序提供“mta”。  
  4.   
  5.   选择    命令  
  6. -----------------------------------------------  
  7. *+ 1           /usr/sbin/sendmail.postfix  
  8.   
  9. 按 Enter 来保存当前选择[+],或键入选择号码:1  

上面的只有一个postfix,sendmail已经被我删了。可以通过下面命令来查看。

  1. [root@localhost ~]# alternatives --display mta  

四,postfix,cyrus-sasl,cyrus-imapd相关配置

1,postfix主配置文件main.cf

  1. [root@localhost postfix]# vim /etc/postfix/main.cf  
  2. myhostname = localhost  //76行,将等号后面的部分改写为本机主机名  
  3. mydomain = 51yip.com   //82行,设置域名  
  4. myorigin = $mydomain   //97行,把$myhostname改为$mydomain  
  5. inet_interfaces = all  //112行,把后面的localhost改成all  
  6. mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain //163行,把前面的注释拿掉,并加一下$mydomain  
  7. mynetworks = 192.168.0.0/24, 127.0.0.0/8  //263行,设置内网和本地IP  
  8. local_recipient_maps =  //209行,把前面的注释拿掉。  
  9. smtpd_banner = $myhostname ESMTP unknow //568行,把前面的注释拿掉,然后把$mail_name ($mail_version)改成unknow  
  10.   
  11. //在main.cf文件的底部加上以下内容  
  12. smtpd_sasl_auth_enable = yes     //使用SMTP认证  
  13. broken_sasl_auth_clients = yes   //让不支持RFC2554的smtpclient也可以跟postfix做交互。  
  14. smtpd_sasl_local_domain = $myhostname  // 指定SMTP认证的本地域名  
  15. smtpd_sasl_security_options = noanonymous //取消匿名登陆方式  
  16. smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination //设定邮件中有关收件人部分的限制  
  17. smtpd_sasl_security_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination //设置允许范围  
  18. message_size_limit = 15728640     //邮件大小  
  19. mailbox_transport=lmtp:unix:/var/lib/imap/socket/lmtp   //设置连接cyrus-imapd的路径  

如果不加local_recipient_maps这个配置,收邮件收不到,下面是qq的退信。

收件人邮件地址(tank@51yip.com)不存在,邮件无法送达。host mail.51yip.com[122.225.***.***] said: 550 5.1.1: Recipient address rejected: User unknown in local recipient table (in reply to RCPT TO command)

2,cyrus-sasl配置

  1. [root@localhost postfix]# vim /etc/sasl2/smtpd.conf  //在文件尾部加上以下内容  
  2. log_level: 3     //记录log的模式  
  3. saslauthd_path:/var/run/saslauthd/mux     //设置一下smtp寻找cyrus-sasl的路径  

在这里要提一下的32位的机器和64位的机器smtpd.conf的路径是不一样的。

  1. //这是centos 5.5 32位机器上smtpd的配置文件  
  2. [root@linux sasl2]# ls |grep conf  
  3. Sendmail.conf  
  4. smtpd.conf  
  5. [root@linux sasl2]# pwd  
  6. /usr/lib/sasl2  
  7.   
  8. //这是centos 6.0 64位机器上smtpd的配置文件,其他地方没有smtpd的配置文件  
  9. [root@localhost postfix]# ls /etc/sasl2/ |grep smtpd  
  10. smtpd.conf  

网上有不少关于postfix安装文章,配置的时候并没有明确提出是32位机器,还是64位机器。所以在这里标明一下。

3,配置cyrus-imapd

cyrus-imapd的主要配置文件有下面三个

/etc/sysconfig/cyrus-imapd

/etc/cyrus.conf

/etc/imapd.conf

这里是默认的配置,也就是说上面三个文件我是没有动过的。在这里提醒一下imapd.conf在这个文件里面,你可以设置管理账号

,设置邮件存放目录,设置密码连接方式等。

五,启动postfix,cyrus-sasl,cyrus-imapd

启动cyrus-imapd服务,就可以同时提供pop和imap服务,如果你已安装了dovecot服务就可以删除掉,cyrus-imapd和dovecot二者选其一就行了,二都可以提供pop和imap服务,不过cyrus-imapd可以为每个用户创建一个信息,而且信箱具有层次结构,比较好管理。建议用cyrus-imapd。

  1. [root@linux sasl2]# /etc/init.d/postfix start  
  2. [root@linux sasl2]# /etc/init.d/saslauthd start  
  3. [root@linux sasl2]# /etc/init.d/cyrus-imapd start  
  4.   
  5. 查看一下进程,  
  6. //smtp监听是25端口  
  7. [root@linux u]# netstat -tpnl |grep smtpd  
  8. tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      6319/smtpd    
  9.   
  10. //110(POP3)和143(IMAP)端口,下面都已经有了  
  11. [root@linux u]# netstat -tpnl |grep cyrus  
  12. tcp        0      0 0.0.0.0:993                 0.0.0.0:*                   LISTEN      23593/cyrus-master  
  13. tcp        0      0 0.0.0.0:995                 0.0.0.0:*                   LISTEN      23593/cyrus-master  
  14. tcp        0      0 0.0.0.0:110                 0.0.0.0:*                   LISTEN      23593/cyrus-master  
  15. tcp        0      0 0.0.0.0:2000                0.0.0.0:*                   LISTEN      23593/cyrus-master  
  16. tcp        0      0 :::993                      :::*                        LISTEN      23593/cyrus-master  
  17. tcp        0      0 :::995                      :::*                        LISTEN      23593/cyrus-master  
  18. tcp        0      0 :::110                      :::*                        LISTEN      23593/cyrus-master  
  19. tcp        0      0 :::143                      :::*                        LISTEN      23593/cyrus-master  
  20. tcp        0      0 :::2000                     :::*                        LISTEN      23593/cyrus-master    
  21.   
  22. 启动是没有问题的。  

六,测试cyrus-sasl

  1. [root@linux t]# passwd cyrus  //设置cyrus的密码  
  2. [root@linux sasl2]# testsaslauthd -u cyrus -p '******'   //系统用户和密码  
  3.  0: OK "Success."  

如果显示是上面的内容说是smtp是没有什么问题

七,cyrus-imapd生产邮件管理员账号,并添加测试账号

安装完cyrus-imapd后会产生一个管理账号是cyrus,所属用户组是mail

  1. [root@linux sasl2]# id cyrus    //imapd.conf里面默认的管理员账号就是cyrus  
  2.  uid=76(cyrus) gid=12(mail) groups=12(mail),76(saslauth)  

在认证admin账号时,我发现32位系统和64位系统有一点不同,二种系统我都配置过,配置都是一样的,
但是出现的结果不一样,看下图

32位机器cyrus管理员用户认证

32位机器cyrus管理员用户认证

64位机器cyrus管理员用户认证

64位机器cyrus管理员用户认证

从上图可以看出,32位的系统是不用加上--auth plain,64位的要,如果不加的话,根本进不去。

进去后,我们来添加一下测试账号

  1. [root@linux sasl2]# cyradm -u cyrus localhost  
  2.  IMAP Password:  
  3.  localhost> cm tank  
  4.  localhost> lm  
  5.  tank (\HasNoChildren)  
  6.  localhost> quit  

这样我们可以在/var/spool/imap中看到,生成的目录,32位机器和64位机器生成的目录是不一样的

  1. //这是64位系统生成的目录  
  2.  [root@localhost u]# ls  
  3.  user^tank  
  4.  [root@localhost u]# pwd  
  5.  /var/spool/imap/u  
  6.   
  7. //这是32位系统生成的目录  
  8.  [root@linux t]# ls  
  9.  tank  
  10.  [root@linux t]# pwd  
  11.  /var/spool/imap/t  

八,测试收发邮件

测试前添加一下DNS,
1,mail.51yip.com A 默认 122.225.***.***
2,mail.51yip.com A 联通 60.12.***.***
3,@ MX 默认 mail.51yip.com
第1和第2,是添加二条A记录,第三行,设置了一下MX记录,这个千万不要忘了,不然你的域名是不通的。

方法有很多,我们可以利用telnet来测试,不过用telnet来测试收发邮件比较麻烦,用linux自带的
mail命令就方便多了

  1. [root@localhost u]# mail -s '看一下' 95219454@qq.com  < /etc/imapd.conf  

以前有朋友问我,他配置的邮件服务器,发出去的邮件都在垃圾箱里面,我配过几次都没有发现这种情况看下图

发邮件已成功

发邮件已成功

从QQ发的邮件已成功

从QQ发的邮件又成功

我们还可以通过maillog日志来查看邮件是否收发成功,看下图

日志查看,收发邮件

日志查看,收发邮件

到这儿,简单的邮件服务器就搭好了。


在dell r410上面装的是centos6,64的操作系统,用的163的源,我一直都是用163的源,比较快。但是我发现这个源里面,根本没有libmcrypt libmcrypt-devel这二个包,装php扩展mcrypt时,又要用到这二个包,所以我手动装了libmcrypt包,但是给我的感觉是163源中的包不全。后来有一个朋友告诉我用epel,用了之后感觉很爽。

一,什么是epel

如果既想获得 RHEL 的高质量、高性能、高可靠性,又需要方便易用(关键是免费)的软件包更新功能,那么 Fedora Project 推出的 EPEL(Extra Packages for Enterprise Linux)正好适合你。EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。

二,使用心得

1,不用去换原来yum源,安装后会产生新repo

2,epel会有很多源地址,如果一个下不到,会去另外一个下

http://mirror.xfes.ru/fedora-epel/6/x86_64/ibus-table-chinese-scj-1.3.4-1.el6.noarch.rpm: [Errno 14] PYCURL ERROR 6 - ""
Trying other mirror.
http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/ibus-table-chinese-scj-1.3.4-1.el6.noarch.rpm: [Errno 14] PYCURL ERROR 6 - ""
Trying other mirror.
http://repo.boun.edu.tr/epel/6/x86_64/ibus-table-chinese-scj-1.3.4-1.el6.noarch.rpm: [Errno 14] PYCURL ERROR 6 - ""kjs

。。。。。。

3,更新时如果下载的包不全,就不会进行安装。这样的话,依赖关系可以保重

三,安装epel,centos6选6,5就选5

32位系统选择:

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

64位系统选择:

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

导入key:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5

如果用比较新的软件,用epel-test.repo这个文件就行了

别忘了安装yum install yum-priorities

[root@localhost yum.repos.d]# ls |grep epel
epel.repo
epel-testing.repo



 1 总体框架
1.1 体系架构
 
Postfix:提供smtp标准协议,进行邮件的收发
Cyrus-Imap:管理通过smtp收到的邮件,并为用户的邮件客户端如outlook/foxmail之类提供pop3/imap服务。用户通过连接到cyrus-imap进行个人邮件的管理
Cyrys-sasl:为smtp/pop3/imap提供SASL验证服务的中间层
PAM:为sasl提供一种验证算法的模块,通过mysql插件可以将验证数据存储在mysql数据库中
Mysql:为PAM提供基本的用户数据,同时为postfix提供数据库别名表
1.2 主要处理流程
收邮件:
1、  postfix收到邮件
2、  postfix到mysql的用户表中检索是否有与收件地址匹配的用户
3、  postfix将邮件转发给cyrus-imap的对应用户邮箱
4、  用户通过邮件客户端登陆cyrus-imap收取邮件
发邮件
1、用户通过邮件客户端登陆cyrus-imap,输入用户密码进行验证
2、用户编写并发送信邮件,提交到cyrus-imap
3、cyrus-imap将邮件提交给postfix,postfix通过smtp将邮件发送给目的地址
2 模块安装
2.1 rpm包及源代码准备
主要rpm包可以直接从CentOS 5.1中提取,postfix和pam_mysql因为需要重新编译,所以需要使用源代码
rpm:
pam-0.99.6.2-3.26.el5.i386.rpm
pam-devel-0.99.6.2-3.26.el5.i386.rpm
cyrus-sasl-2.1.22-4.i386.rpm
cyrus-sasl-lib-2.1.22-4.i386.rpm
cyrus-sasl-md5-2.1.22-4.i386.rpm
cyrus-sasl-plain-2.1.22-4.i386.rpm
cyrus-sasl-devel-2.1.22-4.i386.rpm
db4-4.3.29-9.fc6.i386.rpm
db4-utils-4.3.29-9.fc6.i386.rpm
db4-devel-4.3.29-9.fc6.i386.rpm
cyrus-imapd-utils-2.3.7-1.1.el5.i386.rpm
cyrus-imapd-perl-2.3.7-1.1.el5.i386.rpm
cyrus-imapd-2.3.7-1.1.el5.i386.rpm
mysql-5.0.22-2.1.0.1.i386.rpm
mysql-server-5.0.22-2.1.0.1.i386.rpm
mysql-devel-5.0.22-2.1.0.1.i386.rpm
libsysfs-2.0.0-6.i386.rpm
源代码:
postfix 版本 2.5稳定版,下载地址ftp://postfix.cn99.com/postfix/index.html
文件名 postfix-2.5.2.tar.gz
pam_mysql 版本 0.7RC1,下载地址http://pam-mysql.sourceforge.net/
文件名 pam_mysql-0.7RC1.tar.gz
2.2 安装rpm包
安装指令:rpm –ivh rpm包名称
安装顺序:mysql->pam->db4->cyrus-sasl->cyrus-imap
2.3 编译postfix
1.将源代码解压缩到/usr/src/
#cd /usr/src
#tar zxfv postfix-2.5.2.tar.gz
#cd postfix-2.5.2
2.确定mysql及cyrus-sasl的库安装位置(必须先安装mysql-devel和cyrus-sasl-devel两个rpm包)
一般位置
mysql include:/usr/include/mysql lib:/usr/lib/mysql
cyrus-sasl include:/usr/include/sasl lib:/usr/lib/sasl2
3.编译postfix
编译postfix需要指定支持mysql和cyrus-sasl功能,并根据上一步指定正确的库和包含文件位置
#make makefiles 'CCARGS=-DUSE_SASL_AUTH -DHAS_MYSQL -DUSE_CYRUS_SASL -I/usr/include/mysql -I/usr/include/sasl' 'AUXLIBS=-L/usr/lib/mysql -L/usr/lib/sasl2 -lmysqlclient -lsasl2 -lz -lm'
#make install
编译过程中,postfix会提示确认各参数,全部按回车使用默认值即可
4.创建初始别名表
#postalias /etc/postfix/aliases
#postmap /etc/postfix/virtual
5.验证postfix
如果原来已经安装了sendmail,则需要做以下步骤删除sendmail,才能启动postfix
#service sendmail stop
#rpm –e sendmail
启动并测试postfix
#postfix start
#telnet localhost 25
如果可以正常输出以下内容则确认postfix启动成功。
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 hostname.localdomain ESMTP Postfix
ehlo localhost
250- hostname.localdomain
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
#postconf –a
如果输出包含有cyrus,则说明已经支持cyrus-sasl验证,如:
cyrus
dovecot
#postconf –m
如果输出包含有mysql,则说明已经支持mysql存取,如:
btree
cidr
environ
hash
mysql
nis
proxy
regexp
static
unix
2.4 编译pam_mysql
pam_mysql我们选择0.7RC1的版本,因为可以使用配置文件的方式使配置管理更加简单。
1.解压源代码
# cd /usr/src/
# tar zxfv pam_mysql-0.7RC1.tar.gz
2.预配置
#cd pam_mysql-0.7RC1
# ./configure --with-cyrus-sasl2
# make install
3.验证
# cd /lib/security/
# ls pam_mysql.so
如果该so存在,则编译成功
3 模块配置
首先我们需要为邮件系统创建一个统一的用户表,能够为sasl提供用户验证信息的存取,同时能为postfix提供用户邮箱的信息。
然后将sasl以及imap的认证都设定为通过mysql用户表验证。最后将postfix的别名信息也使用该用户表即可。
我们假定后续配置中,我们使用的库名为mail,登陆用户mail,密码suntek,对应的用户表名为USER,主机名为sample,所属域为sample.eboxhome.com。
我们需要创建两个邮箱用户cyrus和test。cyrus是cyrus-imap的管理用户,test是我们用来测试邮箱功能的测试用户,用户密码均为’suntek’
3.1 配置mysql
 
先使用mysql登陆本地数据库
1.创建库
CREATE DATABASE mail;
2.创建用户mail,设置密码,并将库mail的权限全部赋给用户mail
GRANT ALL ON mail.* TO mail@localhost IDENTIFIED BY "suntek";
FLUSH PRIVILEGES;
3.创建USER表
USE mail
CREATE TABLE USER (
ID int(10) unsigned NOT NULL auto_increment,
USERNAME varchar(128) NOT NULL default '',
PASSWORD varchar(40) NOT NULL default '',
FORWARD varchar(128) NOT NULL default '',
DOMAIN varchar(64) NOT NULL default '',
MAIL varchar(64) NOT NULL default '',
FILTER varchar(64) NOT NULL default 'OK',
PARTITION varchar(32) NOT NULL default 'default',
QUOTA int(11) NOT NULL default '10485760',
STATUS tinyint(4) NOT NULL default '1',
PRIMARY KEY (ID),
UNIQUE KEY USERNAME (USERNAME),
UNIQUE KEY MAIL (MAIL)
);
主要字段定义:
USERNAME:用于验证的用户名,如test
PASSWORD:使用encrypt方法加密的用户密码
FORWARD:cyrus-imap中对应的邮箱名,也可以用于别名邮箱转发
DOMAIN:该用户所属的邮件域,如sample.eboxhome.com
MAIL:该用户的完整邮箱名,如test@sample.eboxhome.com
4.创建邮件用户
备注:ENCRPTY是mysql提供的函数,用来生成加密后的密码
INSERT INTO USER (USERNAME,PASSWORD,FORWARD,DOMAIN,MAIL)
VALUES ('cyrus',ENCRYPT('suntek'),'postmaster','sample.eboxhome.com','cyrus@sample.eboxhome.com');
INSERT INTO USER (USERNAME,PASSWORD,FORWARD,DOMAIN,MAIL)
VALUES ('test',ENCRYPT('suntek'),'test','sample.eboxhome.com','test@sample.eboxhome.com');
脚本
3.2 配置pam
pam的配置主要分两步,首先设置好如何通过mysql的用户表进行验证,然后将smtp/pop3/imap的验证方式都设置为mysql用户表验证
1.创建mysql验证配置文件
#cd /etc/security
#vi pam_mysql.conf
输入以下内容并保存
users.host=localhost
users.database=mail
users.db_user=mail
users.db_passwd=suntek
users.table=USER
users.user_column=USERNAME
users.password_column=PASSWORD
users.password_crypt=y
verbose=1
log.enabled=0
log.table=logs
log.message_column=msg
log.pid_column=pid
log.user_column=user
log.host_column=host
log.rhost_column=rhost
log.time_column=logtime
说明:
users.table是要做select查询的用户表名
users.user_column是用于检索用户名的列
users.password_column是指定要验证密码的列
users.password_crypt是指定密码的加密方式,设置为y,与我们添加用户时的加密方式匹配
verbose=1表示认证部分输出日志,日志位置在/var/log/secure
2.设置邮件验证配置信息
# cd /etc/pam.d/
#vi mail
输入以下内容并保存
account required pam_mysql.so config_file=/etc/security/pam_mysql.conf
auth sufficient pam_mysql.so config_file=/etc/security/pam_mysql.conf
以上参数说明验证时使用pam_mysql驱动,配置文件为/etc/security/pam_mysql.conf
3.设置各服务使用库表验证
# cd /etc/pam.d/
首先先将pop imap smtp三个文件进行备份或者移动到其他地方
# ln -s mail smtp
# ln -s mail pop
# ln -s mail imap
4.验证用户
我们需要启动pop3服务验证在库内添加的用户是否有效
首先启动pop3服务
#service cyrus-imapd start
登陆pop3服务
#telnet localhost 110
如果输出以下内容,则说明数据库验证功能ok,加粗字体为用户输入部分(因为现在还没配置用户邮箱,所以验证成功后会提示找不到邮箱)
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK suntekbj Cyrus POP3 v2.3.7-Invoca-RPM-2.3.7-1.1.el5 server ready <2661826789.1212052774@sample
user test
+OK Name is a valid mailbox
pass suntek
-ERR [SYS/PERM] Unable to locate maildrop: Mailbox does not exist
quit
+OK
如果验证失败,请检查/var/log/secure的日志内容,以排除故障
配置文件
3.3 配置postfix
postfix配置主要涉及三部分,邮件服务器本身信息、mysql别名表和启用sasl验证的配置
1.设置cyrus的转发处理接口
首先确认cyrus的可执行文件的路径为/usr/lib/cyrus-imapd,然后修改master.cf
#cd /etc/postfix/
#vi master.cf
查找以下行,将前面注释去掉,并将调用路径改为上述路径。注意,我们使用的cyrus-imap 2.3的版本,如果使用后面的2.1.5的语句,会导致cyrus返回Bad Protocol。
 ====================================================================
#
# The Cyrus deliver program has changed incompatibly, multiple times.
#cyrus unix  -       n       n       -       -       pipe
  flags=R user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -m ${extension} ${user}
2.创建mysql别名信息
postfix增加了mysql支持功能后,可以根据用户指定的信息,从库表中读取别名信息,我们这里直接使用前面创建的用户表进行别名管理。
#vi mysql-aliases.cf
写入以下信息,并进行保存
#mql config file for alias lookups on postfix
#
# the user name and password to log into the mysql server
hosts = localhost
user = mail
password = suntek
# the database name on the servers
dbname = mail
query = select FORWARD from USER where USERNAME = '%u' and STATUS = 1 limit 1
query是postfix新增加的功能,可以直接编写查询语句,运行时postfix会取出收件邮箱的用户名部分,替换到%u然后进行查询。
3.修改邮件服务器信息
该部分需要设置邮件服务器的主要信息,同时启动sasl认证以及指定mysql别名表
# vi main.cf
需要修改的参数如下:
#本机完整地址
myhostname = sample.eboxhome.com
#发出邮件的域名
myorigin = $myhostname
#指定从mysql中读取别名
alias_maps = hash:/etc/aliases, mysql:/etc/postfix/mysql-aliases.cf
#指定将邮件转给cyrus处理
mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
local_destination_recipient_limit = 300
local_destination_concurrency_limit = 5
fallback_transport = lmtp:unix:/var/lib/imap/socket/lmtp
#启用sasl验证
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
        permit_mynetworks
        permit_sasl_authenticated
        reject_unauth_destination
smtpd_sasl_authenticated_header = yes
4.重新加载postfix参数
#postfix reload
配置文件:
3.4 配置cyrus-imap
cyrus-imap提供了一个管理工具cyradm,以便用户进行邮箱创建及管理,我们需要为创建一个测试用户test的邮箱,以接收从postfix转发过来的test用户邮件。
1.配置imapd
首先需要允许imap里使用完整的命名空间,以及用’.’间隔的地址
#cd /etc
#vi imapd.conf
在后面追加两行:
unixhierarchysep: yes
altnamespace: yes
保存后重新imapd服务
#service cyrus-imapd restart
2.登陆管理终端
#cyradm --user=cyrus localhost
创建用户邮箱,注意邮箱名必须为user/用户名,否则cyrus接收到邮件时会提示Mailbox not exists
创建用户test邮箱
#cm user/test
设置最大空间为10M
#sq user/test STORAGE 1048570
允许管理员使用dm指令删除该用户邮箱
#sam user/test cyrus cd
3.验证
启动邮件客户端outlook/foxmail,将pop3/smtp服务器设置为邮件服务器ip,使用test用户登录,验证是否可以进行邮件收发功能
3.5 配置自动启动服务
所有服务配置完成之后,我们需要设定sasl认证/smtp/pop3/imap服务都能在下次开机时自动启动
#chkconfig –add postfix
如果以前安装了sendmail,则需要卸除该服务
#chkconfig –del sendmail
#chkconfig saslauthd on
#chkconfig cyrus-imapd on
#chkconfig postfix on


1

校睿宝培训机构ERP,学员课时管理软件
实验预约管理软件,实验室管理软件,大学、高校实验预约平台
网站日志分析软件,网站访问日志在线分析
哲涛服务器监控软件,IT运维管理软件,CPU、内存、磁盘监控软件

上海哲涛网络科技有限公司版权所有 © 2005-2023       沪ICP备06058430号-1

沪公网安备 31011302000898号

点我咨询