如何用Python发送简单邮件
在你把这个标记为重复问题之前,我想说我也看过其他的讨论。我想用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服务器,这是没有例外的。