【问题标题】:from_addr = email.utils.getaddresses([from_addr])[0][1] , error while sending the email using pythonfrom_addr = email.utils.getaddresses([from_addr])[0][1] ,使用 python 发送电子邮件时出错
【发布时间】:2020-04-30 17:02:32
【问题描述】:

使用python发送邮件时出现以下错误,我需要创建对象吗?

import smtplib
from email.message import EmailMessage

email = EmailMessage()
email['from']: 'xxxxx@gmail.com'
email['to']: "xxxxx@gmail.com"
email['subject']: 'Hey Buddy Python'

email.set_content("Learning python")

with smtplib.SMTP(host="smtp.gmail.com", port="587") as smtp:
    smtp.ehlo()
    smtp.starttls()
    smtp.login("xxxx@gmail.com", "xxxx")
    smtp.send_message(email)   

程序的输出:

Traceback (most recent call last):
  File "C:/Users/xxxxx/Desktop/PYTHON/PyCharm/Email/SendEmail.py", line 15, in <module>
    smtp.send_message(email)
  File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python38-32\lib\smtplib.py", line 940, in send_message
    from_addr = email.utils.getaddresses([from_addr])[0][1]
  File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python38-32\lib\email\utils.py", line 112, in getaddresses
    all = COMMASPACE.join(fieldvalues)
TypeError: sequence item 0: expected str instance, NoneType found

进程以退出代码 1 结束

【问题讨论】:

    标签: python-3.x email smtplib


    【解决方案1】:

    您收到NoneType 而不是string 的错误是因为您没有将值分配给电子邮件字典,如documentation 中所示。

    更具体地说,这里:

    email['from']: 'xxxxx@gmail.com'
    email['to']: "xxxxx@gmail.com"
    email['subject']: 'Hey Buddy Python'
    

    您应该使用赋值运算符=,而不是:

    尝试:

    email['from'] = 'xxxxx@gmail.com'
    email['to'] = "xxxxx@gmail.com"
    email['subject'] ='Hey Buddy Python'
    

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 2014-06-05
      • 1970-01-01
      • 2018-08-20
      • 2023-02-11
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      相关资源
      最近更新 更多