Python smtplib:为什么连接被拒绝?

Shu*_*ule 3 python email connection smtp send

因此,在 Python 解释器中,我这样做(并且仅此):

>>> import smtplib
>>> s=smtplib.SMTP("localhost")
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/usr/lib/python3.4/smtplib.py", line 242, in __init__
    (code, msg) = self.connect(host, port)
    File "/usr/lib/python3.4/smtplib.py", line 321, in connect
    self.sock = self._get_socket(host, port, self.timeout)
    File "/usr/lib/python3.4/smtplib.py", line 292, in _get_socket
    self.source_address)
    File "/usr/lib/python3.4/socket.py", line 509, in create_connection
    raise err
    File "/usr/lib/python3.4/socket.py", line 500, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
Run Code Online (Sandbox Code Playgroud)

有没有人对我为什么会收到此错误有任何想法?(这是我的问题。)据我所知,不应该这样做。告诉我如果我错了。

我正在使用 Xubuntu 14.04。如果您需要更多信息,请询问。我不知道还有什么可以告诉你的,即兴的。

谢谢!

cjo*_*318 7

尝试通过运行在您机器上的另一个终端中启动服务器,

python -m smtpd -n -c DebuggingServer localhost:1025
Run Code Online (Sandbox Code Playgroud)

然后在第一个终端或脚本中你可以说,

import smtplib
s = smtplib.SMTP( "localhost", 1025 )
Run Code Online (Sandbox Code Playgroud)


ian*_*las 5

SMTPlib 将尝试连接到 SMTP 服务,该服务通常在端口 25 上运行,但也可以在其他各种端口上运行。听起来你可能需要安装 sendmail、postfix 或类似的东西。