説明:この例では、メールボックス163を使用しています
まず、エラーメッセージ
SMTPメールの使用は、次のようなエラーが発生します。
554、b'DT:SPM 163 smtp10、DsCowACXeOtmjRRdsY8aCw - 21947S2 1561628007、http://mail.163.com/help/help_spam_16.htm?ip=36.110.94.251&hostid=smtp10&time=1561628007' を参照してください。
第二に、調査とその理由
163 Eメールの設定1.認証コードかどうかを確認し、認証コードの右。与えられていない:535、b'Error:認証が「失敗しました
2.チェックコードメッセージフォーマット仕様
コードの次のセクション、チュートリアル初心者投稿ヘッダ。実際、送信済みアイテムを見て、送信者のエイリアス(表示示し代わっを)、受信者は送信者のニックネームは、あなた自身で見ています。図は次のとおりです。
#- * -コーディング:UTF-8 - * - #ノラ インポートしたりするsmtplib から email.mime.text 輸入ます:MIMEText から email.header インポートヘッダー インポート時間 MAIL_SERVER = " smtp.163.com " mail_port = 25 差出人 = " 163 @ xxxxxは.COM " sender_password = " XXXXXX " #授权码 受信機= " [email protected] " メッセージ =ます:MIMEText(「Pythonの邮件发送测试...' ' 普通' ' UTF-8 ' ) #1 メッセージ['から']センダ= #1 メッセージ['と'] =受信 メッセージ[ ' から' =ヘッダー(] " 菜鸟教程"、' UTF-8 ' ) メッセージ[ ' に' ] =ヘッダ(" 测试"、' UTF-8 ' ) SEND_TIME = time.strftime(' %Y-%M-%D%H:%のM:%のS ' 、time.localtime(時間。時間())) 対象= ' 邮件测试' + SEND_TIME メッセージ[ ' 件名' ] = 主題の 試み: smtp_obj = smtplib.SMTP() smtp_obj.connect(MAIL_SERVER、mail_port) smtp_obj.login(差出人、sender_password) smtp_obj.sendmail(差出人、[受信機] message.as_string()) プリント(' 成功!' ) を除くsmtplib.SMTPException eと: 印刷(' !失敗' ) プリント(E)
重点是:收到几封邮件后,收不到了,换收件人也收不到,猜测是163禁发了。点上图中帮助可以看到下图,所以善意的伪装也会产生误会。
三、解决方法
From和To使用发件人和收件人真实邮箱地址,发送即可成功。
# -*- coding: utf-8 -*- # Nola import smtplib from email.mime.text import MIMEText import time mail_server = "smtp.163.com" mail_port = 25 sender = "[email protected]" sender_password = "xxxxxx" # 授权码 receivers = "[email protected]" message = MIMEText('Python邮件发送测试...', 'plain', 'utf-8') message['From'] = sender message['To'] = receivers send_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) subject = '邮件测试' + send_time message['Subject'] = subject try: smtp_obj = smtplib.SMTP() smtp_obj.connect(mail_server, mail_port) smtp_obj.login(sender, sender_password) smtp_obj.sendmail(sender, [receivers], message.as_string()) print('success!') except smtplib.SMTPException as e: print('failure!') print(e)