通过Python程序成功发送邮件,但用户无法接收电子邮件

时间:2017-02-06 10:14:00

标签: python email

我有python程序向用户发送邮件。虽然有些用户无法收到邮件,但我们也没有收到任何错误消息。即使我发送邮件到未知(无效)的电子邮件地址,该程序也不会显示任何错误。

以下是我的计划。

  class SendEmail:
    def __init__(self, smtpserver, smtpuser, smtppass, smtpport):
        self.smtpserver = smtpserver
        self.smtpuser = smtpuser
        self.smtppass = smtppass
        self.smtpport = smtpport
    def send(self, to_list, subject, html):
        msgRoot = MIMEMultipart('ralated')
        msgRoot['Subject'] = subject
        msgRoot['From'] = self.smtpuser
        print ";".join(to_list)
        msgRoot['To'] = ";".join(to_list)
        msgRoot.preamble = 'This is a multi-part message in MIME format.'
        msgAlternative = MIMEMultipart('alternative')
        msgRoot.attach(msgAlternative)

        msgText = MIMEText(html, 'html', 'utf-8')
        msgAlternative.attach(msgText)

        try:
            smtp = smtplib.SMTP(self.smtpserver,self.smtpport)
            #smtp.connect(self.smtpserver)

            #if self.smtppass != None:
            #     smtp.login(self.smtpuser, self.smtppass)

            smtp.sendmail(self.smtpuser, to_list, msgRoot.as_string())
        except smtplib.SMTPException,e:
            print smtplib.SMTPException,":",e
        smtp.quit()

 sendm = SendEmail("###","####",None,25)
 sendm.send(['chen_adang92@126.com'],'ECOMM Error Testing','\
           This is test     email , Please let me know If you get the mail,many thanks!')

1 个答案:

答案 0 :(得分:0)

我现在解决了我的问题。 它与python的smtp无关。 我的电子邮件地址是从json文件中提取的。当我从json.load获取时,地址是unicode字符。某些电子邮件服务器无法接受unicode电子邮件地址。所以他们没有收到邮件。