Postfix发送邮件时卡住
如果我尝试像下面这样发送电子邮件,整个过程就会卡住,什么都不发生:
>>> 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.*
日志文件;里面可能会有一些线索,告诉你为什么服务器不工作。