from_addr = email.utils.getaddresses ([from_addr]) [0] [1], ошибка при отправке электронного письма с использованием python - PullRequest
1 голос
/ 30 апреля 2020

Ошибка ниже при отправке электронного письма с использованием 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

1 Ответ

1 голос
/ 30 апреля 2020

Ошибка, которую вы получаете NoneType вместо string, заключается в том, что вы не присваиваете значения словарю электронной почты, как видно из документации .

Более конкретно, здесь :

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'
...