我正在尝试使用python中的chilkat mailman api通过经过身份验证的http代理发送电子邮件。我已经按照Chilkat文档的说明尽我所能,但代理服务器有问题。我已经验证了这个代理工作给定指定的端口和授权使用phantomjs脚本。
import chilkat
# The mailman object is used for sending and receiving email.
mailman = chilkat.CkMailMan()
# set the http proxy
mailman.put_HttpProxyAuthMethod("LOGIN")
mailman.put_HttpProxyHostname("xxx.xxx.xxx.xxx")
mailman.put_HttpProxyPort(xxxxx)
mailman.put_HttpProxyUsername("xxxxx")
mailman.put_HttpProxyPassword("xxxxx")
# Set the SMTP server.
mailman.put_SmtpHost("smtp.live.com")
mailman.put_StartTLS(True)
mailman.put_SmtpPort(25)
# Set the SMTP login/password (if required)
mailman.put_SmtpUsername("xxxxxxx")
mailman.put_SmtpPassword("xxxxxxx")
# Create a new email object
email = chilkat.CkEmail()
email.put_Subject("This is a test")
email.put_Body("This is a test")
email.put_From("name@email.com")
email.AddTo("Chris Johnson","name@email.com")
# Call SendEmail to connect to the SMTP server via the HTTP proxy and send.
success = mailman.SendEmail(email)
if (success != True):
print(mailman.lastErrorText())
sys.exit()
如果我拿出设置代理的部分,则邮件已成功发送。我还遗漏了什么属性吗?
虽然Chillkat的mailman支持HTTP代理,但它似乎不支持纯HTTP代理。主要是,您使用的代理还必须支持其他协议,因为SMTP不通过HTTP进行广播。由于我的代理只支持HTTP协议,所以它对我不起作用。我改用SOCKS代理,现在一切正常。