debian+extman+postfix+courier+mysql精简配置(亲测)

花了三天日夜不眠的努力,从一个对EMAIL一点不懂的新手,到配置好一个可以发送,接收邮件的服务。可以说是经过了千辛万苦。

为了以后不走弯路,做了一个文档上传上来。介于新手一上来就安装很多游戏杀毒,垃圾过滤等等容易把新手弄晕。所以本文只为做一个最基本能用的服务,其他的一概不谈。可以在弄明白整个流程后再增加其他功能。


多谢网上很多的文档提高的帮助,虽然都和实际操作不是很符合,但是一些文档还是很有价值的。网上一些redhat 或centos的安装方法与debian不一样。需要注意

为了清晰的看到操作流程,专门做了静态的HTML文档。


debian-postfix.html

配置文件打了包,可以下载下来看(附赠extman-1.0.0)

日志文件

/var/log/mail.err
/var/log/mail.info
/var/log/mail.log  
/var/log/mail.warn
漏掉一个SQL
update mailbox set domain='example.com';
解析pop.example.com smtp.example.com 到 你的postfix 服务器IP  A地址

用foxmail测试。登陆如果失败,看/var/log/mail.log日志 。

SQL读取的用户名不对  ,应该是 user@example.com 而却是读取的user@domain 所以登陆失败
看说明
##NAME: MYSQL_DEFAULT_DOMAIN:0
#
# If DEFAULT_DOMAIN is defined, and someone tries to log in as 'user',
# we will look up 'user@DEFAULT_DOMAIN' instead.
#
#
# DEFAULT_DOMAIN        example.com

所以更改/etc/courier/authmysqlrc  的
DEFAULT_DOMAIN        example.com

现在OK了

foxmail 不能发送邮件,可以接受,webmail正常

错误日志
NOQUEUE: reject: RCPT from ibm[192.168.1.11]: 553 5.7.1 <postmaster@example.com>: Sender address rejected: not owned by user postmaster;
通过更改main.cf里面smtpd_recipient_restrictions的参数解决
去掉reject_sender_login_mismatch这个参数,更改结果

smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unknown_sender_domain,
    reject_non_fqdn_hostname,
    reject_non_fqdn_sender,
    reject_non_fqdn_recipient,
    reject_unknown_recipient_domain,
    reject_unauth_destination,
    reject_unauth_pipelining,
    reject_invalid_hostname,
    check_recipient_maps

参考
http://topic.csdn.net/u/20080707/09/a68d879b-944c-4e10-8478-3d503c534d32.html
fatal: parameter "smtpd_recipient_restrictions": specify at least one working instance of
错误日志已经告诉你答案了。
配置项:smtpd_recipient_restrictions至少需要指定下列几个参数之一。
check_relay_domains, reject_unauth_destination, reject, defer , defer_if_permit
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_auth_destination  
这语句有问题,可以参考
smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipelining,reject_unauth_destination

reject_sender_login_mismatch
寄信人信箱与登入的账号不吻合时,拒绝其联机。须配合 SASL 使用者认证机制使用(SMTP AUTH)。
配合 smtpd_sender_login_maps 指定的对应表,可以让登入账号与使用的信箱作对应,例如:shane 账号可以用 webmaster 信箱寄信。

postfix 过滤规则详解http://bbs.linuxphp.org/thread-505-1-1.html
解决样例 http://coolerfeng.blog.51cto.com/133059/48317

Authentication FAILED: Operation not permitted

问题应该在你的验证模块上出现错误了
/etc/init.d/courier-authdaemon restart


authtest -s login postmaster@example.com extmail
Authentication succeeded.

 

 

 

 

上一篇: 简易安装postfix邮件服务器实现PHP发送邮件   下一篇: postfix邮箱在DNS设置mx记录和a记录

提交疑问

回顶部