配置
postfix
配置
postfix
分为
2
个部分,配置
postfix
使用
mysql
库读取数据,配置
postfix
使用
dovecot
分发邮件。
配置数据库前,现讲解下
postfix
对信箱的映射规则。一个虚拟用户可以有几个别名,但是邮件会送到哪个邮箱呢?
规则:别名优先于用户名转发
刚才的
mysql
配置过程我们给
zhang3
设置了
2
个别名分别是
zhang3
,
li4
并配置了
''
转发给
wang5
;由于上面规则
zhang3
有别名 它不会查找用户名,而直接转发给
zhang3
和
li4;''
代表空也就是
post.star.com
这个域的所有邮件
,
所以
li4
的邮件就会被转发给
wang5
而不是给它本身的邮箱
.
空域名一种垃圾处理机制,下面会解释。
接下来创建
4
个文件
domains.cf mailbox-maps.cf alias-maps.cf email2email.cf
#sudo mkdir /etc/postfix/mysql
#sudo vi /etc/postfix/mysql/domains.cf
user = mailadmin
password = libertine
hosts = 127.0.0.1
dbname = mail
query = select 1 from virtual_domains where name ='%s'
#postmap -q post.star.com mysql:/etc/postfix/mysql/domains.cf
检测
1
#postconf -e virtual_mailbox_domains= mysql:/etc/postfix/mysql/domains
输入到
main.cf
#sudo vi /etc/postfix/mysql/mailbox-maps.cf
user = mailadmin
password = libertine
hosts = 127.0.0.1
dbname = mail
query = select 1 from view_users where email='%s'
1
#postconf -e virtual_mailbox_maps= mysql:/etc/postfix/mysql/mailbox-maps.cf
输入到
main.cf
#sudo vi /etc/postfix/mysql/alias-maps.cf
user = mailadmin
password = libertine
hosts = 127.0.0.1
dbname = mail
query = select destination from view_aliases where email='%s'
#sudo vi /etc/postfix/mysql/email2email.cf
user = mailadmin
password = libertine
hosts = 127.0.0.1
dbname = mail
query = select email from view_aliases where email='%s'
#postconf -e virtual_alias_maps= mysql:/etc/postfix/mysql
/alias-maps.cf,mysql:/etc/postfix/mysql/email2email.cf
输入到
main.cf
上面
virtual_mailbox_domains
是域名查找语句
virtual_mailbox_maps
是邮件查找语句
virtual_alias_maps
是别名查找语句
通过以上配置 应该看出来 在别名查找时加入了一个
email2email.cf
的文件
,
这个文件的作用就是在没有别名确有该用户的时候,把用户转发给用户本身,而不是垃圾箱。接下来没有用户和别名的邮件就垃圾回收站了。
给
postfix
权限去控制
mysql
#sudo chgrp postfix -R /etc/postfix/mysql
#sudo chmod 640 -R /etc/postfix/mysql
使用
postmap
命令 已经知道
postfix
已经知道邮件了,现在给他们按个家
#sudo groupadd -g 5000 vmail
#sudo useradd -g 5000 -u vmail -d /var/mail/virtual -m
#sudo postconf -e virtual_uid_maps=static:5000
#sudo postconf -e virtual_gid_maps=static:5000
有家了,该接客了 配置
dovecot
sudo vi /etc/postfix/master.cf main.cf
是主配置文件
master.cf
是
postfix
的程序文件
照着文件后边相应的格式 输入
dovecot unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
Ok
了
#sudo postconf -e virtual_transport=dovecot
#sudo postconf -e virtual_destination_recipient_limit=1
这样
POSTFIX
就配置好了
配置
dovecot
配置
配置
/etc/dovecot/dovecot.conf
文件
这个文件有
1000
多行,要处要改跟着我的脚步慢慢改吧
.
确定协议
protocols = imap imaps pop3 pop3s
设置存储位置
mail_location = maildir:/var/mail/virtual/%d/%n/Maildir
设置用
SSL/TLS
加密
POP3/IMAP
ssl_cert_file = /etc/ss1/certs/ssl-cert-snakeoil.pem
ssl_key_file = /etc/ss1/private/s1-cert-snakeoil.key
ssl_disable = no
disable_plaintext_auth = no
以下修改认证方式
认证机制
mechanisms = plain login
配置
sql
认证
passdb sql {
.....
args = /etc/dovecot/dovecot-sql.conf
.....
}
记住了
认证方式 只有一种
开了就把
PAM
认证关了
配置用户数据
userdb static{
.....
arg = uid=5000 gid=5000 home=/var/mail/virtual/%d/%n allow_all_users=yes
.....
}
接口监听配置
socket listen {
master{
path = /var/run/dovecot/auth-master
mode = 0600
user = vmail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
PROTOCOL IDA
配置
protocol lad {
.........
log_path = /var/mail/virtual/dovecot-deliver.log
auth_socket_path = /var/run/dovecot/auth-master
.........
}
wq
这个文件里有很多大括号,注意 该关的都关了 不该的别关,很多括号里面也有注释 别把括号内的#都去掉了,负责服务重启不起来。
接下来配置
dovecot
接受
mysql
#sudo vi /etc/postfix/dovect-sql.conf
在有
driver
标识的地方更改为
driver = mysql
connect = host=127.0.0.1 dbname=mail user=mailadmin password=libertine
password_query = select email as user ,password from view_users where email='%u';
/wq
设置
smtp
认证
#sudo postconf -e smtpd_sasl_type=dovecot
#sudo postconf -e smtpd_sasl_path=private/auth
#sudo postconf -e smtpd_sasl_auth_enable=yes
#sudo postconf -e smtpd_recipient_restrictions=permit_mynetworks,pe
rmit_sasl_authenticated,reject_unauth_destination
给权限拉
#sudo chgrp vmail /etc/dovecot/dovecot.conf
#sudo chmod g+r /etc/dovecot/dovecot.conf
最后
#sudo /etc/init.d/postfix restart
#sudo /etc/init.d/dovecot restart
接下来配置
OS
按照虚拟机一样的思路配置就
OK
了。
VE OK
试试能发邮件不
telnet 127.0.0.1 smtp
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 star.com ESMTP Postfix (Ubuntu)
ehlo post.star.com
250-star.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
250 2.1.0 Ok
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
subject:hi
hi my friend.are you ok?
.
250 2.0.0 Ok: queued as AD1834C64C4
成功的从
post.star.com
域给
star.com
域发一个邮件看下日志
Sep 8 12:16:38 star postfix/cleanup[1193]: AD1834C64C4: message-id=<[email protected]>
Sep 8 12:16:38 star postfix/qmgr[986]: AD1834C64C4: from=<[email protected]>, size=380, nrcpt=1 (queue active)
Sep 8 12:16:38 star postfix/smtp[1194]: AD1834C64C4: to=<[email protected]>, relay=mail.star.com[158.196.0.230]:25, delay=52, delays=52/0.01/0.01/0.03, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 417F22A607E)
呵呵
邮件成功配置好了
一个可实现
smtp pop3 imap
帐户认证可收发的邮件服务器
OK
配置
squirrelmail
接下来配置
squirrelmail
实现
web
发送邮件
#sudo squirrelmail-configure