Python 发送邮件时出错

Python 发送邮件时出错,python,email,send,Python,Email,Send,我尝试通过python发送邮件。我得到了一个函数: def mail(): fromaddr = 'mymail@gmail.com' toaddrs = 'targetmail@o2.pl' msg = 'There was a terrible error that occured and I wanted you to know!' # Credentials (if needed) username = 'mymail@gma

我尝试通过python发送邮件。我得到了一个函数:

def mail():
    fromaddr = 'mymail@gmail.com'  
    toaddrs  = 'targetmail@o2.pl'  
    msg = 'There was a terrible error that occured and I wanted you to know!'  


    # Credentials (if needed)  
    username = 'mymail@gmail.com'  
    password = 'password'  

    # The actual mail send  
    server = smtplib.SMTP('smtp.gmail.com:587')  
    server.ehlo()
    server.starttls()
    server.ehlo()  
    server.login(username,password)  
    server.sendmail(fromaddr, toaddrs, msg)  
    server.quit() 
当我尝试执行此函数时,它会告诉我WinError 10060。错误文本如下:

Traceback (most recent call last): 
File "C:\python-factory\ServiceChecker\main\mainBlock.py", line 75, in <module>  mail()
File "C:\python-factory\ServiceChecker\main\mainBlock.py", line 65, in mail server =   smtplib.SMTP('smtp.gmail.com:587')  
File "C:\Python34\Lib\smtplib.py", line 242, in __init__ (code, msg) = self.connect(host, port)
File "C:\Python34\Lib\smtplib.py", line 321, in connect self.sock = self._get_socket(host, port, self.timeout)
File "C:\Python34\Lib\smtplib.py", line 292, in _get_socket self.source_address)
File "C:\Python34\Lib\socket.py", line 509, in create_connection raise err
File "C:\Python34\Lib\socket.py", line 500, in create_connection sock.connect(sa)
TimeoutError: [WinError 10060]
回溯(最近一次呼叫最后一次):
mail()中第75行的文件“C:\python factory\ServiceChecker\main\mainBlock.py”
文件“C:\python factory\ServiceChecker\main\mainBlock.py”,第65行,在邮件服务器=smtplib.SMTP('SMTP.gmail.com:587')中
文件“C:\Python34\Lib\smtplib.py”,第242行,在_uinit___;(代码,msg)=self.connect(主机,端口)
文件“C:\Python34\Lib\smtplib.py”,第321行,在connect self.sock=self.\u get\u socket(主机、端口、self.timeout)中
文件“C:\Python34\Lib\smtplib.py”,第292行,在\u get\u socket self.source\u地址中)
文件“C:\Python34\Lib\socket.py”,第509行,位于create\U connection raise err中
文件“C:\Python34\Lib\socket.py”,第500行,位于create\u connection sock.connect(sa)中
TimeoutError:[WinError 10060]
我不知道问题出在哪里。。。我尝试了很多邮件服务器(gmail、o2、wp等等),它们都返回了相同的错误。我还尝试了互联网上其他可用的解决方案,通过Python发送邮件。。。。同样的问题


请帮助

尝试删除第二台服务器。ehlo()。登录前的那个。这对我很有效。

根据你发布的回溯,你在这条线上失败了

server = smtplib.SMTP('smtp.gmail.com:587')  
我跑过那条线,它对我很管用。线索在
TimeoutError
中。我相信你有网络问题,代码本身也很好

您确实有一个额外的呼叫
ehlo
,但就目前情况而言,您并没有走那么远

此外,最好将端口号作为单独的参数传递,而不是使用冒号拆分端口号。例如

server = smtplib.SMTP(host='smtp.gmail.com', port=587)

smptlib的文档在这里:

toaddrs
应该是一个列表

toaddrs  = ['targetmail@o2.pl']  

1) 尝试正确缩进代码!似乎行
smtplib.SMTP('SMTP.gmail.com:587')
失败了。它对我有用。你运行这台机器的网络连接好吗?只是程序中粘贴错了很好我要公司网络。。。这可能是一个原因吗?这是我的代码:同一个原因可能是一个企业网络。。。当我尝试运行主服务器时,它可能会阻止我的脚本…最好与您的系统管理员联系,因为不了解您的网络拓扑结构的用户只能提供这么多帮助:)