无法在Python中启动smtp

时间:2012-11-13 09:31:33

标签: python smtp telnet

我尝试用python启动一个带有以下代码的smtp服务器:

import smtplib
smtp_server = smtplib.SMTP('localhost')

我收到以下错误:

File "test.py", line 2, in <module>
    smtp_server = smtplib.SMTP('localhost')
  File "/usr/local/lib/python2.7/smtplib.py", line 242, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/local/lib/python2.7/smtplib.py", line 302, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/local/lib/python2.7/smtplib.py", line 277, in _get_socket
    return socket.create_connection((port, host), timeout)
  File "/usr/local/lib/python2.7/socket.py", line 571, in create_connection
    raise err

我尝试telnet localhost 25telnet localhost,但他们都给出了以下错误:

Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host: Connection refused

相同的python代码在我的其他一台机器上运行得非常好。

有什么建议吗?

感谢。

更新:

我遇到问题的机器是运行Python 2.7.2,而代码运行良好的机器运行的是Python 2.6.2。我不知道这是否是其中一个原因。

2 个答案:

答案 0 :(得分:4)

smtplib是SMTP协议客户端。您要找的是smtpd

答案 1 :(得分:1)

问题是smtplib不提供SMTP服务器实现,它实现了SMTP客户端。最有可能的是,代码尝试连接到localhost并失败。见http://docs.python.org/2/library/smtplib.html

您编写的其他计算机是否已在运行SMTP服务器?

你想做什么?