使用Python中的smtplib连接Google邮箱时出错
我遇到的问题是,当我运行以下代码时,出现了WinError 10061。经过我的搜索,这个错误看起来是因为远程机器没有正确设置。不过,我想谷歌应该已经为Gmail处理好了这些,所以问题可能出在我这边。我找到的其他例子都是在使用本地服务器时出现这个错误,原因是他们没有设置本地邮件服务器。那我这个问题也是这样吗?我肯定我漏掉了什么明显的东西。此外,错误代码是完整的。谢谢大家的帮助!
import smtplib
fromaddr = 'email@email.com'
toaddrs = 'otheremail@email.com'
msg = 'Random stuff!'
username = 'username'
password = 'pass'
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
错误信息:
Traceback (most recent call last):
File "C:/Users/Brett/PycharmProjects/Texting/sendMessage.py", line 13, in <module>
server = smtplib.SMTP('smtp.gmail.com')
File "C:\Python33\lib\smtplib.py", line 238, in __init__
(code, msg) = self.connect(host, port)
File "C:\Python33\lib\smtplib.py", line 317, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "C:\Python33\lib\smtplib.py", line 288, in _get_socket
self.source_address)
File "C:\Python33\lib\socket.py", line 424, in create_connection
raise err
File "C:\Python33\lib\socket.py", line 415, in create_connection
sock.connect(sa)
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it
1 个回答
0
我以前用过Gmail的SMTP服务器,想说的是,SMTP端口的号码其实默认就是Gmail需要的那个,所以你可以不写这个端口号(也可以在服务器名称后面加上冒号来写)。基于这个情况,你可能需要换台机器试试,看看是不是网络出问题了。另外,587端口需要进行身份验证,这意味着Gmail可能会认为你在发垃圾邮件或者其他什么奇怪的事情。而25端口是默认的端口,如果你不输入端口号,它就会用这个,但这个端口不会进行身份验证。