smptlib.SMTP在使用“ localhost”时抛出错误,为什么会发生?

时间:2020-06-29 06:57:51

标签: python-3.x email localhost smtplib

我只是想学习如何使用电子邮件模块和smtplib发送电子邮件。这就是我得到的。

[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import smtplib
>>> from email.message import EmailMessage
>>> with open("file.txt") as fp:
...     msg = EmailMessage()
...     msg.set_content(fp.read())
... 
>>> msg['Subject'] = f'The contents of file'
>>> msg['From'] = "s*i*a*d*1*@gmail.com"
>>> msg['To'] = "s*i*a*k*9*@gmail.com"
>>> s = smtplib.STMP('localhost')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'smtplib' has no attribute 'STMP'
>>> s = smtplib.SMTP('localhost')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.6/smtplib.py", line 251, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python3.6/smtplib.py", line 336, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib/python3.6/smtplib.py", line 307, in _get_socket
    self.source_address)
  File "/usr/lib/python3.6/socket.py", line 724, in create_connection
    raise err
  File "/usr/lib/python3.6/socket.py", line 713, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

我想使用localhost托管它,并且抛出此错误。有人可以告诉我如何解决吗?

1 个答案:

答案 0 :(得分:0)

很可能没有SMTP在本地主机上运行(接受传入的SMTP连接)。

在Unix / Linux上,本地SMTP服务器是默认的,而不是在MS OS上。

AFAIR在Ubuntu本地SMTP服务器上,默认情况下由postfix软件包提供。它也可以由senndmail或exim软件包提供(或不那么受欢迎)。

相关问题