0

我正在尝试通过经过身份验证的 http 代理使用 python 中的 chilkat mailman api 发送电子邮件。我已尽我所能遵循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()

如果我取出设置代理的部分,则邮件发送成功。我还缺少其他一些属性吗?

4

1 回答 1

0

虽然 Chillkat 的邮递员支持 HTTP 代理,但它似乎不支持纯 HTTP 代理。主要是,您使用的代理还必须支持其他协议,因为 SMTP 不通过 HTTP 进行广播。由于我的代理只支持 HTTP 协议,它对我不起作用。我换用了 SOCKS 代理,现在一切正常。

于 2014-05-20T18:02:35.820 回答