使用 gmail 作为 sendmail 的电子邮件中继

使用 gmail 作为 sendmail 的电子邮件中继

我曾经能够使用 Gmail 帐户和使用互联网上的其中一份指南配置的 sendmail 发送电子邮件,例如:http://appgirl.net/blog/configuring-sendmail-to-relay-through-gmail-smtp/

这是一台小型服务器,我最近把它搬到了另一所房子。sendmail 停止工作了。网络设置中唯一不同的是换了一个新路由器。

怎么了:

  1. 在日志文件中,我看到以下错误:

    ...stat=Deferred:smtp.gmail.com:没有到主机的路由

  2. 当我从命令行运行时:

    strace sendmail -f A -t B -u “主题” -m “消息” -tls=yes ssl=yes -s smtp.gmail.com:587 -xu A -xp XYZ

它挂在这个呼叫上:

recvfrom(3, "m0\201\203\0\1\0\0\0\0\0\0\4ares\3lan\0\0\34\0\1", 8192, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.1.254")}, [16]) = 26
close(3)                                = 0
time(NULL)                              = 1339997943
open("/etc/localtime", O_RDONLY)        = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=3477, ...}) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=3477, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb76ff000
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0"..., 4096) = 3477
_llseek(3, -24, [3453], SEEK_CUR)       = 0
read(3, "\nEST5EDT,M3.2.0,M11.1.0\n", 4096) = 24
close(3)                                = 0
munmap(0xb76ff000, 4096)                = 0
socket(PF_FILE, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_FILE, path="/dev/log"}, 110) = 0
send(3, "<18>Jun 18 01:39:03 sendmail[268"..., 96, MSG_NOSIGNAL) = 96
nanosleep({60, 0}, 

因此,看起来它在某个时候会尝试解析 DNS 名称,但我在 53 上没有运行任何程序,所以它就死机了,然后就挂了。另一件有趣的事情是,它msmtp在同一台服务器上运行良好。

更新:aresstrace 输出的实际上是我的服务器的名称,但 .254 IP 地址是路由器的地址。

有人能告诉我为什么会发生这种情况吗?或者我可以采取哪些进一步措施来调查这个问题?谢谢!

答案1

  • 内容是什么/etc/resolv.conf阿瑞斯

  • 当您使用 8.8.8.8 和 8.8.4.4 作为 DNS 服务器时问题是否仍然存在?

  • 你可以吗telnet smtp.google.com 587

通常这样的问题意味着您的 ISP 不允许您连接到远程主机的某些端口。

相关内容