【问题标题】:Error during sending mail发送邮件时出错
【发布时间】:2014-07-11 05:51:37
【问题描述】:

我尝试通过 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]

我不知道问题出在哪里...我尝试了许多邮件服务器(gmail、o2、wp),它们都返回了相同的错误。我还尝试了互联网上其他可用的解决方案来通过 pyython 发送邮件......同样的问题......

请帮忙

【问题讨论】:

  • 1) 尝试正确缩进你的代码!
  • 似乎smtplib.SMTP('smtp.gmail.com:587') 行失败了。这个对我有用。你运行它的机器是否有良好的互联网连接?
  • 只是在程序中粘贴错了就好了
  • 我需要企业网络...这可能是一个原因吗?
  • 这是我的代码:github.com/zagorulkinde/fakesmtp 也是如此

标签: python email send


【解决方案1】:

尝试删除第二个 server.ehlo() 。登录前的那个。这对我有用。

【讨论】:

    【解决方案2】:

    根据您发布的回溯,您失败了

    server = smtplib.SMTP('smtp.gmail.com:587')  
    

    我已经运行了这条线,它对我有用。线索在TimeoutError。我相信您遇到了网络问题,并且代码本身很好。

    你确实有一个额外的电话给ehlo,但就目前而言,你还没有走那么远。

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

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

    smptlib 的文档在这里:https://docs.python.org/2/library/smtplib.html

    【讨论】:

    • 原因可能是公司网络...当我尝试运行时主服务器可能会阻止我的脚本...
    • 最好咨询您的系统管理员,因为不了解您的网络拓扑的 SO 上的人只能提供这么多帮助:)
    【解决方案3】:

    toaddrs 应该是一个列表

    toaddrs  = ['targetmail@o2.pl']  
    

    【讨论】:

      猜你喜欢
      • 2012-12-14
      • 2015-03-05
      • 2016-08-25
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      • 2014-09-26
      相关资源
      最近更新 更多