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设计】。

相关文章

Python命令启动Web服务器实例详解

Python命令启动Web服务器实例详解 利用Python自带的包可以建立简单的web服务器。在DOS里cd到准备做服务器根目录的路径下,输入命令: python -m Web服务器模...

服务器变量 $_SERVER 的深入解析

服务器变量 $_SERVER 的深入解析: 1、$_SESSION['PHP_SELF'] -- 获取当前正在执行脚本的文件名 2、$_SERVER['SERVER_PROTOCOL']...

浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法

废话不多说,上代码复制代码 代码如下:<?php//查询禁止IP$ip =$_SERVER['REMOTE_ADDR'];$fileht=".htaccess2";if(!file...

python3实现UDP协议的服务器和客户端

利用Python中的socket模块中的来实现UDP协议,这里写一个简单的服务器和客户端。为了说明网络编程中UDP的应用,这里就不写图形化了,在两台电脑上分别打开UDP的客户端和服务端就...

Python操作RabbitMQ服务器实现消息队列的路由功能

Python使用Pika库(安装:sudo pip install pika)可以操作RabbitMQ消息队列服务器(安装:sudo apt-get install rabbitmq-s...