如何通过代理使用smtplib模块发送邮件?

4 投票
2 回答
4646 浏览
提问于 2025-04-17 16:00

我在使用Python的smtplib模块时遇到了问题:在工作时,电脑是通过代理连接的。当我运行以下代码时:

server = smtplib.SMTP()
server.connect('smtp.gmail.com:587')
server.login('username','password')
server.sendmail('from', 'to', 'msg')
server.quit()

就会出现这个错误信息:

文件 "C:\Python32\lib\socket.py",第386行,在create_connection中 对于res在getaddrinfo(host, port, 0, SOCK_STREAM)中: socket.gaierror: [Errno 11001] getaddrinfo失败

我觉得这是因为代理的问题,它阻止了连接。 这台电脑可以上网。 我该如何通过代理发送电子邮件呢? ps:(我来自意大利,抱歉我的英语不太好)

2 个回答

0

问题在于你的DNS解析没有正常工作。这个错误就是在告诉你这个情况。

0

下面的代码可以正常运行:

server = smtplib.SMTP_SSL('smtp.gmail.com',port=465)
server.login('username@gmail.com','password')
server.sendmail('from', 'to', 'msg')

撰写回答