2017-02-06 7 views
0

私はユーザーにメールを送るpythonプログラムを持っています。一部のユーザーはメールを受け取ることができませんが、エラーメッセージも表示されませんでした。未知の(無効な)電子メールアドレスにメールを送信しても、プログラムはエラーを表示しません。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(['[email protected]'],'ECOMM Error Testing','\ 
      This is test  email , Please let me know If you get the mail,many thanks!') 
+0

メールログを確認してください。 –

+0

申し訳ありませんが、メールログを確認する場所はありますか? smtp.sendmail(....)を実行した後にログが返ってこないようです。 – maomifadacai

+0

メールサーバで –

答えて

0

私は今問題を解決しました。 これはpythonのsmtpとは何も関係ありません。 私の電子メールアドレスはjsonファイルから抽出されます。 json.loadから取得すると、アドレスはUnicode文字になります。いくつかの電子メールサーバーはユニコード電子メールアドレスを受け入れることができません。彼らはメールを受け取っていませんでした。

関連する問題