如何用Python发送简单邮件

3 投票
1 回答
504 浏览
提问于 2025-04-18 14:02

在你把这个标记为重复问题之前,我想说我也看过其他的讨论。我想用Python发送一封邮件,想要的简单程度就像在PHP中使用mail()函数那样。我试着用官方Python文档中的例子。但是当我尝试在我的Linux机器上连接到本地服务器时,我遇到了以下问题:

>>> import smtplib
>>> smtplib.SMTP('localhost')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/usr/lib/python2.7/smtplib.py", line 251, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python2.7/smtplib.py", line 311, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib/python2.7/smtplib.py", line 286, in _get_socket
    return socket.create_connection((host, port), timeout)
  File "/usr/lib/python2.7/socket.py", line 571, in create_connection
    raise err
error: [Errno 111] Connection refused

我以为这个例子运行时不需要邮件服务器(就像PHP的mail()函数一样,不需要邮件服务器就能运行)。

你们觉得我可能哪里做错了,或者我该怎么做才能发送邮件呢?任何建议都很欢迎!

1 个回答

1

PHP中的mail()函数确实需要一个中继来发送邮件。在Linux系统上,它默认使用sendmail

而在Windows系统上,你需要提供一个SMTP服务器的地址。

要让任何程序发送邮件,你必须连接到一个SMTP服务器,这是没有例外的。

撰写回答