本文主要介绍了POSTFIX+MYSQL+DOVECOT如何整合在一起,进行邮件的收发

实验环境 linux rhel6.0

首先创建postfix的库,建立一个表4个元素           userid      password     domain      maibox插入一个数据项     test      westos.org   westos.org/test/service  postfix start  useradd -­u 600 ­-s /sbin/nologin vmail• postconf ­-e virtual_mailbox_base=/home/vmail• postconf -­e virtual_uid_maps=static:600• postconf ­-e virtual_gid_maps=static:600• postconf ­-e virtual_alias_maps=mysql:/etc/postfix/mysql­-alias.cf• postconf ­-e virtual_mailbox_domains=mysql:/etc/postfix/mysql-­domains.cf• postconf ­-e virtual_mailbox_maps=mysql:/etc/postfix/mysql-­mailboxs.cf

新建三个文件

1 /etc/postfix/mysql-alias.cf

 
  1. user = vmail 
  2. password = vmail 
  3. dbname = postfix 
  4. table = users 
  5. select_field = userid 
  6. where_field = userid 

2 /etc/postfix/mysql-domains.cf

 
  1. user = vmail 
  2. password = vmail 
  3. dbname = postfix 
  4. table = users 
  5. select_field = domain 
  6. where_field = domain 

3/etc/postfix/mysql-mailboxs.cf

 
  1. user = vmail 
  2. password = vmail 
  3. dbname = postfix 
  4. table = users 
  5. select_field = mailbox 
  6. where_field = userid 

* 在mysql中给vmail用户权限
 grant all on postfix.* to identified by 'vmail';
 

测试

postmap -­q ” mysql:/etc/postfix/mysql-­alias.cf
postmap ­-q “westos.org” mysql:/etc/postfix/mysql-­domains.cf
postmap ­-q ” mysql:/etc/postfix/mysql-­mailboxs.cf
service postfix restart
 mail
之后在/home/vmail/下自己会建立文件夹

至此已可以把邮件收到服务器上的mailbox

之后要用户收到邮件要用dovecot,dovecot是用来收邮件的
配置dovecot
yum install dovecot dovecot-mysql -y
/etc/dovecot/conf.d/10-mail.conf  下改两项
           mail_location = maildir:/home/vmail/%d/%n
           first_valid_uid = 600
10-auth.conf中的第二个include的注释去掉
cp /usr/share/doc/dovecot-2.0/example.config/dovecot-sql.conf.ext /etc/dovecot
vi /etc/dovecot/dovecot-sql.conf.ext
 

 
  1. driver = mysql 
  2. ...  
  3. connect = host=localhost dbname=postfix user=vmail 
  4. password=vmail 
  5. ...  
  6. default_pass_scheme = PLAIN (明文加密)  
  7. ...  
  8. passwd_query = \  
  9.    SELECT userid, domain, password \  
  10.    FROM users WHERE userid = '%u' 
  11. ...  
  12. user_query = SELECT mailbox, 600 AS uid,600 AS gid FROM users WHERE userid = '%u' 

重启dovecot

测试
 telnet localhost 110
user
pass test
list