3

如果我尝试按如下方式发送电子邮件,该过程将挂起并且没有任何反应:

>>> 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)

但是,对端口 25 进行 telnet 就可以了

$ 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

我不知道下一步该去哪里找出问题所在。请帮我。谢谢你。

4

1 回答 1

11

您的邮件服务器工作不正常。当您使用 连接到它时telnet,您应该会看到一条欢迎消息,如下所示:

220 your.server.name ESMTP Postfix

(您可以通过运行检查您应该看到的问候语postconf smtpd_banner。)

你不明白,所以邮件服务器运行不正常。send_mail可能正在等待该初始消息。

重启 Postfix,查看/var/log/mail.*日志文件;那里可能有关于它为什么不起作用的线索。

于 2010-09-04T11:09:51.890 回答