已解决python邮件发送报错smtplib.SMTPDataError: (550, b‘The “From“ header is missing or invalid.

使用python邮件发送时报错:smtplib.SMTPDataError: (550, b'The "From" header is missing or invalid.Please follow RFC5322,RFC2047,RFC822 standard protocol.    https://help.mail.qq.com/detail/0/994

最后经过努力成功解决该错误。详细解决过程和解决方案如下所示:

一、问题发生的现象

       在使用python发送qq邮件时,定义了如下发送邮件的代码: 

         .................
        email = MIMEText(message,send_email_type, "utf-8")
        email["From"] = Header(header_from, "utf-8")

        email["To"] = Header(header_to, "utf-8")
        email["Subject"] = Header(subject, "utf-8")
        .............................

      但运行程序时,报以下错误:已解决python邮件发送报错smtplib.SMTPDataError: (550, b‘The “From“ header is missing or invalid._第1张图片

 mtplib.SMTPDataError: (550, b'The "From" header is missing or invalid.Please follow RFC5322,RFC2047,RFC822 standard protocol.    https://help.mail.qq.com/detail/0/994)


二、问题发生的原因分析

         根据错误提示是说from里面设置的header缺失或者无效,需要遵循RFC5322,RFC2047,RFC822 协议标准,后面还提供了一个链接,打开看看:

已解决python邮件发送报错smtplib.SMTPDataError: (550, b‘The “From“ header is missing or invalid._第2张图片

    里面声明了发送邮件时from的格式是怎么样的,要遵照要求的格式来写。

   于是检查下发送者的header_from ,我写的是发送者的名称,不是发送者的邮箱,因此header_from 修改为发送者的邮箱 [email protected]  。然后运行发送还是不行。

    回到错误的提示,既然说from格式不合法,那么猜测后面的header返回的数据格式不合法,因此删除掉header,因为没有了header,所以直接写成发送者邮箱的地址:

     .................
        header_from = '[email protected]'
        email = MIMEText(message,send_email_type, "utf-8")
        email["From"] =header_from

        email["To"] = Header(header_to, "utf-8")
        email["Subject"] = Header(subject, "utf-8")
        .............................

   测试,ok,发送成功。


三、最终解决方法

       发送qq邮件时,改成: email["From"]=‘发送者邮箱地址’  ,去掉Header。或者把Header中的utf-8参数去掉。

你可能感兴趣的:(程序开发常见问题汇总,python,邮件,550,SMTPDataError,header)