Python在代理服务器后发送电子邮件

2024-04-24 22:31:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我想通过hotmail smtp使用python脚本发送电子邮件,但我已连接到代理服务器。

这是我的代码,当它直接连接到internet时可以工作,但如果它连接到代理服务器,他就不能工作。

import smtplib

smtpserver = 'smtp.live.com'
AUTHREQUIRED = 1 
smtpuser = 'example@hotmail.fr'  
smtppass = 'mypassword'  

RECIPIENTS = 'mailto@gmail.com'
SENDER = 'example@hotmail.fr'
mssg = "test message"
s = mssg   

server = smtplib.SMTP(smtpserver,587)
server.ehlo()
server.starttls() 
server.ehlo()
server.login(smtpuser,smtppass)
server.set_debuglevel(1)
server.sendmail(SENDER, [RECIPIENTS], s)
server.quit()

Tags: comserverexamplefrsmtpsendersmtplibrecipients
3条回答

如果您的代理是http代理,则应使用:

socks.setdefaultproxy(socks.HTTP, 'proxy.proxy.com', 8080)

而不是socks.SOCKS5

您可以使用名为SocksiPyPySocks的模块来完成此任务,该模块是当前维护的fork:

import smtplib
import socks

#socks.setdefaultproxy(TYPE, ADDR, PORT)
socks.setdefaultproxy(socks.SOCKS5, 'proxy.proxy.com', 8080)
socks.wrapmodule(smtplib)

smtpserver = 'smtp.live.com'
AUTHREQUIRED = 1 
smtpuser = 'example@hotmail.fr'  
smtppass = 'mypassword'  

RECIPIENTS = 'mailto@gmail.com'
SENDER = 'example@hotmail.fr'
mssg = "test message"
s = mssg   

server = smtplib.SMTP(smtpserver,587)
server.ehlo()
server.starttls() 
server.ehlo()
server.login(smtpuser,smtppass)
server.set_debuglevel(1)
server.sendmail(SENDER, [RECIPIENTS], s)
server.quit()

安装socks模块python。

sudo apt-get install python-socksipy

或者

也可以使用pip安装

pip install PySocks

相关问题 更多 >