在Python中使用smtplib通过SMTP连接到Google Mail时出错

在Python中使用smtplib通过SMTP连接到Google Mail时出错,python,gmail,smtplib,Python,Gmail,Smtplib,我的问题是,当我运行下面的代码时,我得到了一个WinError10061,从我所有的搜索结果来看,这似乎是外国机器没有正确设置的结果,但我认为谷歌已经为gmail解决了这个问题,所以错误在我这边。我能找到的所有其他示例都是使用localhost并出现此错误,这是因为他们没有设置本地邮件服务器。这个问题还会是这样吗?我确信我遗漏了一些明显的东西。此外,错误代码是完整的。提前谢谢你 import smtplib fromaddr = 'email@email.com' toaddrs = 'ot

我的问题是,当我运行下面的代码时,我得到了一个WinError10061,从我所有的搜索结果来看,这似乎是外国机器没有正确设置的结果,但我认为谷歌已经为gmail解决了这个问题,所以错误在我这边。我能找到的所有其他示例都是使用localhost并出现此错误,这是因为他们没有设置本地邮件服务器。这个问题还会是这样吗?我确信我遗漏了一些明显的东西。此外,错误代码是完整的。提前谢谢你

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
回溯(最近一次呼叫最后一次):
文件“C:/Users/Brett/PycharmProjects/Texting/sendMessage.py”,第13行,在
server=smtplib.SMTP('SMTP.gmail.com')
文件“C:\Python33\lib\smtplib.py”,第238行,在\uu init中__
(代码,消息)=自连接(主机,端口)
文件“C:\Python33\lib\smtplib.py”,第317行,在connect中
self.sock=self.\u获取\u套接字(主机、端口、self.timeout)
文件“C:\Python33\lib\smtplib.py”,第288行,在\u get\u套接字中
self.source(地址)
文件“C:\Python33\lib\socket.py”,第424行,位于create\u connection中
提出错误
文件“C:\Python33\lib\socket.py”,第415行,位于create_connection中
sock.connect(sa)
ConnectionRefusedError:[WinError 10061]无法建立连接,因为目标计算机主动拒绝了它

在过去使用过Gmail SMTP服务器之后,我只能指出SMTP端口的号码实际上默认为Gmail的相应号码,因此端口参数(也可以用冒号固定在服务器名称上)可以省略。鉴于此,您可能应该尝试另一台机器,以确保您没有遇到网络错误等。此外,端口587要求进行ID检查,这意味着Gmail可能会认为您在发送垃圾邮件或其他一些废话。端口25(未输入端口号时的默认值)不执行此检查。

您是否尝试过端口25?@nikola for gmail?是的,但我还是犯了同样的错误。不幸的是,我只能说在这里它对我有效。可能是暂时的故障或网络问题(防火墙、代理等)?好吧,所以我在另一台机器上试了一下,结果成功了。不知道第一个有什么问题。谢谢大家@RoyalBam&Clemens Klien Robbenhaar-是的,企业防火墙似乎是这一错误背后的原因之一。对于测试,在不同的网络上尝试类似的代码,它可能会工作。我就是这样。因此,我转而使用windows gui库(即pywinauto、win32gui、pywin32、win32com)。