recherche

Maison  >  Questions et réponses  >  le corps du texte

python3 使用smtplib发送邮件错误554

python3使用smtplib和MIME发送邮件失败

代码:

from smtplib import SMTP
from email.mime.text import MIMEText
from email.header import Header

def send_email(SMTP_host, from_addr, password, to_addrs, subject, content):
    email_client = SMTP(SMTP_host)
    email_client.login(from_addr, password)
    # create msg
    msg = MIMEText(content,'plain','utf-8')
    msg['Subject'] = Header(subject, 'utf-8')#subject
    msg['From'] = 'main<xxxxx@163.com>'
    msg['To'] = "xxxxx@126.com"
    email_client.sendmail(from_addr, to_addrs, msg.as_string())

    email_client.quit()

if __name__ == "__main__":
    send_email("smtp.163.com","xxxxx@163.com","password","xxxxx@126.com","test","hellow")
    

运行错误:

Traceback (most recent call last):
...
  File "D:/bioinformatics/python脚本/mai.py", line 14, in send_email
    email_client.sendmail(from_addr, to_addrs, msg.as_string())
  File "D:\软件\python\lib\smtplib.py", line 799, in sendmail
    raise SMTPDataError(code, resp)
smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp8,DMCowACX58anaFJX9+uwAA--.20172S2 1465018537,please see http://mail.163.com/help/help_spam_16.htm?ip=219.143.13.117&hostid=smtp8&time=1465018537')

在网上找了很多方法,把防火墙也关了,修改了发件人收件人名称,但还是没有效果,真的不知道是什么原因。。

大家讲道理大家讲道理2803 Il y a quelques jours928

répondre à tous(4)je répondrai

  • 大家讲道理

    大家讲道理2017-04-17 17:53:33

    Enfin, j'ai trouvé une solution :
    Une erreur se produira lorsque le sujet de l'e-mail est « test », remplacez-le simplement par un autre mot. . Je ne sais pas quelle est la raison étrange

    répondre
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:53:33

    Le rapport d'erreur n'est-il pas très clair :
    Lien de l'erreur : http://help.163.com/09/1224/17/5RAJ4LMH00753VB8.html

    554 DT : Le contenu de l'email envoyé par SPM contient des informations non autorisées ou est identifié comme spam par le système. Veuillez vérifier si un utilisateur envoie des virus ou du spam

    Ce dont vous avez besoin, c'est de vérifier le contenu de ce que vous avez publié.

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-17 17:53:33

    1) Vérifiez la corbeille pour vous assurer que l'e-mail n'est pas jeté à la poubelle
    2) De et À doivent être cohérents avec le contenu. Ne remplissez pas de champs incohérents, sinon il sera filtré par le. serveur de messagerie.
    Si vous testez le code ci-dessous, vous pouvez utiliser la boîte aux lettres 163 pour envoyer des e-mails à la boîte aux lettres QQ.

    def send_email(SMTP_host, from_account, from_passwd, to_account, subject, content):
        email_client = SMTP(SMTP_host)
        email_client.login(from_account, from_passwd)
        # create msg
        msg = MIMEText(content, 'plain', 'utf-8')
        msg['Subject'] = Header(subject, 'utf-8')  # subject
        msg['From'] = from_account
        msg['To'] = to_account
        email_client.sendmail(from_account, to_account, msg.as_string())
    
        email_client.quit()
        
        
        

    répondre
    0
  • PHPz

    PHPz2017-04-17 17:53:33

    C'est effectivement le cas. L'expéditeur et le destinataire doivent être 163 serveurs pour réussir l'envoi. Sinon, une erreur sera signalée !

    répondre
    0
  • Annulerrépondre