Python smtplib:为啥连接被拒绝?

Posted

技术标签:

【中文标题】Python smtplib:为啥连接被拒绝?【英文标题】:Python smtplib: Why is the connection refused?Python smtplib:为什么连接被拒绝? 【发布时间】:2014-09-02 18:59:48 【问题描述】:

所以,在 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。如果您需要更多信息,请询问。我不知道还有什么可以告诉你的,顺便说一句。

谢谢!

【问题讨论】:

您的本地计算机上有邮件服务器吗? 没有。 (请参阅我刚刚发布的对 iandouglas 的回答的评论。) 现在我明白了 - 您可以使用 smtplib 使用您在邮件服务器上的帐户发送邮件,例如 gmail.com 或其他。 【参考方案1】:

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

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

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

啊。我认为您可以使用它来代替 postfix 之类的东西。所以,它似乎需要其中之一。谢谢!

以上是关于Python smtplib:为啥连接被拒绝?的主要内容,如果未能解决你的问题,请参考以下文章

Python 2.7 smtplib 如何发送带有错误 13 权限的附件被拒绝?

为啥 ConnectException:连接被拒绝:从 HttpURLConnection.getResponseCode() 抛出连接? [复制]

为啥使用 WMI 连接时出现访问被拒绝错误?

python 发送邮件及smtplib.SMTPAuthenticationError 503 错误处理

为啥从Android中的本机程序连接到LocalServerSocket时连接被拒绝

为啥我在尝试通过 Matlab ftp 访问 Box 时收到“连接被拒绝”?