使用代理通过 smtplib 发送邮件

Send mail with smtplib using proxy

我有一段非常基础的 Python 代码:

    import smtplib
    server = smtplib.SMTP(host, port)
    problems = server.sendmail(from_addr, to_addr,  message)

有解决方案运行 它在 HTTP 代理后面吗?我在 Linux 上使用 Python 3.4.1 并设置了 http_proxy 变量。

现在我从 SMTP 收到超时,但是如果我 运行 来自无代理网络的代码,它工作正常。

Is there solution to run it behind an HTTP proxy?

不,HTTP 是与 SMTP 不同的协议,代理仅适用于 HTTP。如果你很幸运,你可以使用 CONNECT 命令创建一个到外部 SMTP 服务器的隧道,但通常用于 CONNECT 的端口是受限制的,所以你将无法创建一个到外部的隧道主机端口 25(即 SMTP)。