我有一个任务,需要将一个邮件服务器从一个箱子迁移到另一个箱子,到目前为止我已经配置好了,Postfix
一切正常。但是,Courierpop3d
服务器无一例外地失败了。
因此,我有 Courierpop3d
服务器,它需要通过MySQL
数据库对用户进行身份验证。
/var/log/maillog
Oct 20 03:40:09 vps-1161420-22112 pop3d: Connection, ip=[::ffff:127.0.0.1]
Oct 20 03:40:15 vps-1161420-22112 pop3d: LOGIN: ip=[::ffff:127.0.0.1], command=USER
Oct 20 03:40:21 vps-1161420-22112 pop3d: LOGIN: ip=[::ffff:127.0.0.1], command=PASS
Oct 20 03:40:21 vps-1161420-22112 pop3d: LOGIN: ip=[::ffff:127.0.0.1], [email protected]
Oct 20 03:40:21 vps-1161420-22112 pop3d: LOGIN: ip=[::ffff:127.0.0.1], password=some-foo
Oct 20 03:40:21 vps-1161420-22112 authdaemond: received auth request, service=pop3, authtype=login
Oct 20 03:40:21 vps-1161420-22112 authdaemond: authmysql: trying this module
Oct 20 03:40:21 vps-1161420-22112 authdaemond: stopping authdaemond children
Oct 20 03:40:21 vps-1161420-22112 authdaemond: restarting authdaemond children
Oct 20 03:40:21 vps-1161420-22112 authdaemond: modules="authmysql", daemons=5
Oct 20 03:40:21 vps-1161420-22112 authdaemond: Uninstalling authmysql
Oct 20 03:40:21 vps-1161420-22112 authdaemond: Installing libauthmysql
Oct 20 03:40:21 vps-1161420-22112 authdaemond: Installation complete: authmysql
Oct 20 03:40:22 vps-1161420-22112 pop3d: LOGIN FAILED, [email protected], ip=[::ffff:127.0.0.1]
Oct 20 03:40:22 vps-1161420-22112 pop3d: authentication error: Input/output error
最后两行没有过多说明 IO 错误实际上是什么。
我已经在文件中配置了 mysql 连接/etc/authlib/authmysqlrc
::
MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD some-password
....
other mysql settings
我已经验证我可以MySQL
使用其凭证连接到其自身。
那么,有什么方法可以增加pop3d
或的详细程度吗authmysql
?我已经DEBUG_LOGIN=2
在authdaemonrc
文件中设置了。
非常感谢!
答案1
我自己能够解决这个问题。
关键问题是我courier-authlib
在开发箱上构建了二进制文件但我的生产箱有mysql-5.5.*
,我的开发箱也有mysql-5.6.*
。
显然,lib文件的差异导致了authmysql
调用时崩溃......
希望这对某人有帮助...