今天在做用outlook收发邮件的时候,发现原来测试成功的服务实际上还有问题
1 报错:用telnet localhost 25连不上服务器,日志里报错说cyrus-sasl中的per-sasl进程没有起来,但是我的saslauthd这个服务是起来的
  解决:  重新编译postfix,少了一个配置参数“-DUSE_CYRUS_SASL”
修改后重新编译,postfix重新编译不用删除原来的配置文件,是更行编译,但是要对配置文件做备份
make makefiles 'CCARGS=-DHAS_MYSQL\
 -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH\
 -DUSE_CYRUS_SASL -I/usr/include/sasl'\
 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lm -lz -L/usr/local/lib -lsasl2'
2 报错: 在重新编译后能够登录上服务器的25端口,但是输入经过64为编码编译后用户名和密码之后是认证失败
  解决: 查看日志里没有什么重要信息,只是报sasl认证失败。经过尝试最后因为authdaemond和authmysqlrc这两个
文件的权限不够,chmod 755 /usr/local/courer-authlib/etc/autlib/authdaemond
                chmod 755 /usr/local/courer-authlib/etc/autlib/authdaemond
3 报错:验证还是没有通过,但是日志报错有提示
  解决:提示SQl在查询的时候返回值为0“zero rows returned”,但是SQl查询的条件是username='lyd.net'(我的base64编码的是lyd@gcimg.net)
编码的命令是:perl -e 'use MIME::Base64; print encode_base64("postmaster@extmail.org")' 最后检查是因为@是一个字母,编码的时候
不识别,前面加一个/来转义。
4 报错:在服务器上能够登录25端口,而且验证能成功了,但是outlook一直测试smtp不通过
  解决: 看日志里报错,还是SQl在查询的时候返回值为0“zero rows returned”,SQl查询的条件是username='lyd',这个原因是outlook
设置错误,我在outlook设置里smtp认证用户名那一项添上全名lyd@gcimg.net
这四个错误之后解决了smtp认证的问题
5 报错:dovecot的验证通不过,日志里显示mkdir(/mailbox//lyd/Maildir/cur)filed:permission denied
  解决:这个错误貌似是权限的问题,但是仔细一看,/mailbox下边的文件夹没有域名的文件加,应该是dovecot的配置文件有错误,找到mail_location全是出错了,改为mail_location=
maildir:~/mailbox/%d/%n/Maildir
6 报错: 在上个问题解决之后outlook上pop3的认证还是通不过,查看日志,没有什么重要的信息,貌似都认证都通过,最后检查出来是outlook
设置的问题,pop3认证在outlook上也是要求全名验证的,在outlook下设置之后邮件系统就完成了