如果我尝试按如下方式发送电子邮件,则该过程会挂起并且没有任何反应:
>>> 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
我不知道接下来要去哪里找出什么是错的。请帮我。谢谢。
答案 0 :(得分:11)
您的邮件服务器运行不正常。当您使用telnet
连接到它时,您应该看到以下行的欢迎消息:
220 your.server.name ESMTP Postfix
(您可以通过运行postconf smtpd_banner
来查看应该看到的问候语。)
您没有这样做,因此邮件服务器运行不正常。 send_mail
可能正在等待初始消息。
重新启动Postfix,查看/var/log/mail.*
日志文件;可能有一个线索,为什么它不起作用。