sendmail 名称服务器超时

sendmail 名称服务器超时

我是 sendmail 的新手... 我一直想用 PHP 来收发邮件,但最终我发现问题出在 sendmail 对“名称服务器超时”的抱怨:

>sendmail -t -v
>From: [email protected]
>To: [email protected]
>.
gmail.com: Name server timeout
[email protected]... Transient parse error -- message queued for future delivery
[email protected]... queued

这听起来像是 DNS 问题?但我可以执行“dig mx gmail.com”,它会成功查询。

让我困惑的是……我可以用另外两种方式让 sendmail 工作。第一种方法是通过 telnet:

>telnet 127.0.0.1 25
>Helo me
>Mail from: [email protected]
>Rcpt to: [email protected]
>.
message sent

第二种方法是明确附加 sendmail.cf,但这很奇怪,因为它与我用来配置 sendmail 的文件完全相同:

>sendmail -t -v -C/etc/mail/sendmail.cf

但是这些解决方案都无法解决我的 PHP 邮件问题...我不知道发生了什么...感谢任何帮助。

答案1

伙计,三天后我终于解决了它......我不知道这对任何人来说有多大程度上适用,因为这只是一个极端情况。

所以我在 Android 上的 Ubuntu chrooted 环境中工作。当您访问 Ubuntu 中的任何类型的套接字(sendmail、mysql 等)时,您的进程都需要在组 3003(AID_INET)或 root 中运行,这是因为 android 强制这样做(CONFIG_ANDROID_PARANOID_NETWORK)。它与 telnet 一起工作的原因是因为我是 root,它通过附加 -C 工作的原因相同(-C 强制 sendmail 在 root 下运行...)

当我注意到除非我是 root(ping、wget、dig),否则我无法解析任何主机名时,我的灯泡开始熄灭,这是一个权限问题。

解决方案是创建一个名为 aid_inet 的组并赋予它 3003,然后将需要套接字的所有内容添加到该组

groupadd -g 3003 aid_inet
usermod -G aid_inet user

现在我最深切的愿望之一就是这些信息能够拯救未来一些可怜的迷失的灵魂,使他们不会像我一样在桌子上摔破头……

相关内容