0

我尝试使用以下代码使用 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。我不知道这是否是原因之一。

4

2 回答 2

4

smtplib是 SMTP 协议客户端。您正在寻找的是smtpd.

于 2012-11-13T09:47:20.213 回答
1

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

您所写的另一台机器是否已经在运行 SMTP 服务器?

你想做什么?

于 2012-11-13T09:36:24.430 回答