Configure Posfix with Dovecot
OS Configuration
kernel
[[email protected] ~]# uname -a
Linux db.egolife.com 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux
account
[[email protected] ~]# useradd -s /sbin/nologin me
[[email protected] ~]# passwd me
Changing password for user me.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
postfix and dovecot
required packages
[[email protected] ~]# rpm -qa | egrep 'sendmail|postfix|dovecot'
dovecot-2.0.9-2.el6_1.1.x86_64
postfix-2.6.6-2.2.el6_1.x86_64
config postfix
postconf -e 'home_mailbox = Maildir/'
postconf -e 'smtpd_sasl_type = dovecot'
postconf -e 'smtpd_sasl_path = private/auth'
postconf -e 'smtpd_sasl_security_options = noanonymous'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
postconf -e 'mynetworks = 127.0.0.0/8, 172.17.1.100/32, 172.29.73.0/24'
postconf -e 'myorigin = egolife.com'
[[email protected] ~]# grep '^\s*[^# \t].*$' /etc/postfix/main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
myorigin = egolife.com
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
mynetworks = 127.0.0.0/8, 172.17.1.100/32, 172.29.73.0/24
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.6.6/samples
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
home_mailbox = Maildir/
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks,reject_unauth_destination
config dovecot
dovecot.conf
[[email protected] ~]# vim /etc/dovecot/dovecot.conf
... ...
listen = 127.0.0.1, 172.17.1.100
mail_location = maildir:~/mail
... ...
[[email protected] ~]# grep '^\s*[^# \t].*$' /etc/dovecot/dovecot.conf
listen = 127.0.0.1, 172.17.1.100
mail_location = maildir:~/mail
dict {
}
!include conf.d/*.conf
10-master.conf
[[email protected] ~]# vim /etc/dovecot/conf.d/10-master.conf
... ...
service auth {
# auth_socket_path points to this userdb socket by default. It's typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Its default
# permissions make it readable only by root, but you may need to relax these
# permissions. Users that have access to this socket are able to get a list
# of all usernames and get results of everyone's userdb lookups.
unix_listener auth-userdb {
#mode = 0600
#user =
#group =
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
}
# Auth process is run as this user.
#user = $default_internal_user
}
[[email protected] ~]# grep '^\s*[^# \t].*$' /etc/dovecot/conf.d/10-master.conf
service imap-login {
inet_listener imap {
}
inet_listener imaps {
}
}
service pop3-login {
inet_listener pop3 {
}
inet_listener pop3s {
}
}
service lmtp {
unix_listener lmtp {
}
}
service imap {
}
service pop3 {
}
service auth {
unix_listener auth-userdb {
}
unix_listener /var/spool/postfix/private/auth {
mode = 0666
}
}
service auth-worker {
}
service dict {
unix_listener dict {
}
}
10-auth.conf
[[email protected] ~]# vim /etc/dovecot/conf.d/10-auth.conf
... ...
disable_plaintext_auth = no
... ...
auth_mechanisms = plain login
... ...
passdb {
driver = shadow
}
... ...
[[email protected] ~]# grep '^\s*[^# \t].*$' /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login
passdb {
driver = shadow
}
!include auth-system.conf.ext
chkconfig and start service
chkconfig
[roo[email protected] ~]# chkconfig postfix on
[[email protected] ~]# chkconfig dovecot on
start service
[[email protected] ~]# service postfix restart
Shutting down postfix: [ OK ]
Starting postfix: [ OK ]
[[email protected] ~]# service dovecot restart
Stopping Dovecot Imap: [ OK ]
Starting Dovecot Imap: [ OK ]
mail test
script
F:\Workspace\python\pydev\mail\eml\mail.py
client
cd /d F:\Workspace\python\pydev\mail\eml\
python mail.py
send mail successfully!
server log
[[email protected] ~]# tail -f /var/log/maillog
Jul 19 17:35:09 db postfix/smtpd[16361]: connect from unknown[192.168.1.1]
Jul 19 17:35:09 db postfix/smtpd[16361]: 160E68047E: client=unknown[192.168.1.1], sasl_method=PLAIN, sasl_username=me
Jul 19 17:35:09 db postfix/cleanup[16370]: 160E68047E: message-id=<>
Jul 19 17:35:09 db postfix/qmgr[16304]: 160E68047E: from=<[email protected]>, size=4298, nrcpt=1 (queue active)
Jul 19 17:35:09 db postfix/smtpd[16361]: disconnect from unknown[192.168.1.1]
Jul 19 17:35:09 db postfix/smtp[16371]: connect to gmail-smtp-in.l.google.com[2607:f8b0:400e:c03::1a]:25: Network is unreachable
Jul 19 17:35:13 db postfix/smtp[16371]: 160E68047E: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[74.125.25.26]:25, delay=4.2, delays=0.04/0/0.93/3.2, dsn=2.0.0, status=sent (250 2.0.0 OK 1374226522 pf2si10055347pac.244 - gsmtp)
Jul 19 17:35:13 db postfix/qmgr[16304]: 160E68047E: removed
Reference
blog comments powered by Disqus