centos dovecot mysql_Centos6.4 配置postfix+dovecot+mysql

使用Linux用户验证和收发邮件

需要组件 postfix dovecot roundcube

postfix 用来收发邮件, 作为SMTP服务器, 监听25端口

dovecot 用作为POP3, IMAP服务器, 监听 POP3的110, IMAP的143端口, 用来和邮件客户端(如Foxmail,roundcube等)通讯, 管理邮件

roundcube 作为客户端, 登录时通过IMAP来认证用户

postfix 配置

/etc/postfix/main.cf:

myhostname

mydomain

#指定发送邮件时地址 xx@domain.com 中的domain.com, 如果使用mail命令发送邮件,需要设置该参数否则不能发送

myorigin

#可接受转发邮件的类型

mynetworks_style

#mynetworks和relay_domains配合使用, 用来代替mynetworks_style

#可接受转发的来源IP

mynetworks

#可接受转发的域名

relay_domains

#邮件保存格式, 使用Maildir格式

home_mailbox=Maildir/

以上配置完后就可以用postifx收发邮件了, 也可以通过客户端设置SMTP来让postfix发送邮件,但是客户端无法管理邮件,因为postfix没有提供POP3或IMAP来和客户端互动, 要想让客户端能管理和查看邮件需要配置dovecot来提供POP3或IMAP服务

dovecot 配置

配置 /etc/dovecot/dovecot.conf:

#开启的协议

protocols= imap pop3 lmtp

配置 /etc/dovecot/conf.d/10-auth.conf:

disable_plaintext_auth=no

auth_mechanisms = plain login

#使用Linux用户来验证

!include auth-system.conf.ext

配置 /etc/dovecot/conf.d/10-mail.conf :

#邮件所在目录

mail_location = maildir:~/Maildir

配置 /etc/dovecot/conf.d/10-master.conf:

service auth {

# Postfix smtp-auth

unix_listener /var/spool/postfix/private/auth {

mode = 0660

user = postfix

group = postfix

}

}

配置postfix, 让其使用dovecot来做sasl认证:

smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous

smtpd_sasl_local_domain = ''

smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks, reject_unauth_ destination

broken_sasl_auth_clients = yes

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/auth

使用mysql来存放验证用户,接受域名等信息

因为前面使用的是Linux用户,所以每次收发邮件可以直接使用Linux用户来操作,但是如果要使用mysql来存放用户和验证,我们就需要一个Linux用户来进行收发的操作,因此我们可以建立一个Linux用户来代理操作

$ useradd -g vmail -d /home/vmail

之后为了让postfix和dovecot能够使用mysql特性,需要安装 dovecot-mysql, centos 6.4的postfix好像带了mysql功能

配置dovecot,让其通过mysql的数据来认证用户:

/etc/dovecot/conf.d/10-auth.conf :

#注释掉这行

#!include auth-system.conf.ext

#打开这行

!include auth-sql.conf.ext

/etc/dovecot/conf.d/10-mail.conf:

mail_location = maildir:/home/vmail/%d/%n/Maildir

/etc/dovecot/10-master.conf:

service auth{

unix_listener /var/spool/postfix/private/auth {

mode = 0666

user = postfix

group = postfix

}

unix_listener auth-userdb {

mode = 0600

user = vmail

#group =

}

}

/etc/dovecot/auth-sql.conf.ext:

passdb {

driver = sql

args = /etc/dovecot/dovecot-sql.conf.ext

}

userdb {

driver = static

args = uid=vmail gid=vmail home=/home/vmail/%d/%n

}

postfix通过mysql验证用户

配置 /etc/postfix/main.cf :

#告诉Postfix去MySQL数据库种寻找域名、用户帐号密码及邮件别名等信息

virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

postfix使用dovecot的LMTP来存放邮件

设置postfix将接受到的邮件转给dovecot存放到对应目录

配置 /etc/postfix/main.cf :

#将mydestination的值修改为'',以便Postfix能够通过MySQL表中相关数据决定需要接受/发送邮件的域名,这样更具有通用性

mydestination =''

#以便告诉Postfix不要使用LDA「Local Delivery Agent」转而使用Dovecot的LMTP完成本地邮件投递

virtual_transport = lmtp:unix:private/dovecot-lmtp

配置 /etc/dovecot/conf.d/10-master.conf :

service lmtp {

unix_listener /var/spool/postfix/private/dovecot-lmtp {

mode = 0600

user = postfix

group = postfix

}

}

配置 /etc/dovecot/conf.d/20-lmtp.conf , 作用是使用postmaster_address地址将接收到的邮件转发给对应的本地用户:

protocol lmtp {

postmaster_address = postmaster@yourdomain

}

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值