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

3 投票
2 回答
10714 浏览
提问于 2025-04-18 13:02

在Python解释器中,我只做了这个:

>>> import smtplib
>>> s=smtplib.SMTP("localhost")

然后我得到了这个结果:

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

有没有人知道为什么我会遇到这个错误?(这就是我的问题。)根据我的理解,它不应该这样。告诉我如果我错了。

我使用的是Xubuntu 14.04。如果你需要更多信息,请问我。我一时想不出还有什么可以告诉你的。

谢谢!

2 个回答

8

试着在你电脑的另一个终端窗口里启动一个服务器,运行下面的命令:

python -m smtpd -n -c DebuggingServer localhost:1025

然后在第一个终端窗口或者脚本里,你可以输入:

import smtplib
s = smtplib.SMTP( "localhost", 1025 )
5

SMTPlib会尝试连接到一个SMTP服务,通常这个服务是在25号端口上运行的,不过它也可以在其他不同的端口上运行。听起来你可能需要安装sendmail、postfix或者类似的东西。

撰写回答