Postfix发送邮件时卡住

3 投票
1 回答
4251 浏览
提问于 2025-04-16 03:42

如果我尝试像下面这样发送电子邮件,整个过程就会卡住,什么都不发生:

>>> from django.core.management import setup_environ
>>> from cube import settings
>>> setup_environ(settings)
'cube'
>>> from django.core.mail import send_mail
>>> send_mail('Subject', 'Message', 'sender@domain.com', ['recepient@domain.com'], fail_silently=False)

不过,使用telnet连接到25号端口却没问题

$ telnet localhost 25
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
^]

telnet> 

这里还有这个,以防万一

$ netstat -a | grep :smtp
tcp        0      0 *:smtp                  *:*                     LISTEN     
tcp        0      0 localhost:smtp          localhost:44932         ESTABLISHED
tcp        0      0 localhost:44932         localhost:smtp          ESTABLISHED
tcp        0      0 localhost:smtp          localhost:60964         ESTABLISHED
tcp        0      0 localhost:60964         localhost:smtp          ESTABLISHED
tcp        0      0 localhost:37247         localhost:smtp          FIN_WAIT2  
tcp        1      0 localhost:smtp          localhost:37247         CLOSE_WAIT 
tcp        9      0 localhost:smtp          localhost:37245         CLOSE_WAIT 

我使用的是Ubuntu 10.04和Python 2.6.5

我不知道接下来该去哪里找出问题所在。请帮帮我。谢谢。

1 个回答

11

你的邮件服务器出现问题了。当你用 telnet 连接到它时,应该能看到一条欢迎信息,大概是这样的:

220 your.server.name ESMTP Postfix

(你可以通过运行 postconf smtpd_banner 来检查应该看到的欢迎信息。)

但是你没有看到这些信息,所以邮件服务器运行得不正常。send_mail 可能在等待这个初始消息,结果卡住了。

你可以重启 Postfix,然后查看 /var/log/mail.* 日志文件;里面可能会有一些线索,告诉你为什么服务器不工作。

撰写回答