python3发送邮件需要经过代理服务器的示例代码

yipeiwu_com6年前服务器

现象:已知,连接的WIFI网络需要通过代理服务器才能连接外网,按照正常的程序无法发送邮件,而直连一个没有代理的网络【如自己的wifi热点】,可以发送邮件。无法发送邮件的提示是:

TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

解决办法:要使用代理,需要用到socket和socks这两个包。socks在python3中不是自带的,所以需要通过pip install PySocks这个模块。

增加如下带代码即可:

import socks
import socket
socks.set_default_proxy(socks.HTTP, '地址', 端口, True, 用户名, 密码)
socket.socket = socks.socksocket

注意:socks的类型,即set_default_proxy的第一个参数,网上很多资料写的都是socks.SOCKS5。如果出现下面这个错误,请检查代理服务的类型,我这里改成socks.HTTP即可正常发送邮件:

socks.GeneralProxyError: Socket error: Connection closed unexpectedly

以上这篇python3发送邮件需要经过代理服务器的示例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

paramiko模块安装和使用(远程登录服务器)

一:简介 由paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。 由于使用的是python这样的能够跨平台运行的语言,所以所...

python3实现微型的web服务器

实验目的:用socket 模拟一个微型的web服务器,当py脚本run起后,实微型web server架起了,然后用本地浏览器访问127.0.0.1:8080(web serv...

使用Python的Twisted框架实现一个简单的服务器

预览   twisted是一个被设计的非常灵活框架以至于能够让你写出非常强大的服务器。这种灵活的代价是需要好通过好几个层次来实现你的服务器, 本文档描述的是Protocol层...

详解配置 Apache 服务器支持 PHP 文件的解析

详解配置 Apache 服务器支持 PHP 文件的解析

详解配置 Apache 服务器支持 PHP 文件的解析 【说明】 1. 本例中 Apache 版本为 httpd-2.4.20-x64-vc14 ,安装路径为 E:\Apache24...

haskell实现多线程服务器实例代码

复制代码 代码如下:module Main where import Network.Socketimport Control.Concurrent main :: IO ()main...