【问题标题】:smtplib of python not workingpython的smtplib不工作
【发布时间】:2015-02-04 18:01:09
【问题描述】:

试图连接到 gmail 的 smpt 服务器,但它导致网络无法访问

import smtplib
s=smtplib.SMTP('smtp.gmail.com',587)

这都不行

import smtplib
s=smtplib.SMTP_SSL('smtp.gmail.com',587)

出现以下错误:

Traceback(最近一次通话最后一次):

  File "<stdin>", 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
  socket.error: [Errno 101] Network is unreachable

【问题讨论】:

  • 你用的是什么操作系统?

标签: python email smtplib


【解决方案1】:

使用端口 465。来自Google SMTP 配置文档;

import smtplib
s = smtplib.SMTP_SSL('smtp.gmail.com', 465)

【讨论】:

  • 在端口号 25 上工作,但在其他端口上仍然存在问题。
【解决方案2】:

根据this page 587端口需要TLS。

【讨论】:

    【解决方案3】:

    对我来说,当我在 Ubuntu 中尝试时,它正在使用 TLS 端口。脚本如下所示:

    import smtplib
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    

    它正在使用 Windows cygwin 中的 SSL 端口。脚本如下所示:

    import smtplib
    server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    

    【讨论】:

      【解决方案4】:

      对我来说,这是因为网络不允许打开套接字,如果可能,请尝试不同的网络

      【讨论】:

        猜你喜欢
        • 2010-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-06
        • 2011-10-02
        • 2016-01-10
        • 2013-02-04
        相关资源
        最近更新 更多