Как мне отправить электронное письмо, используя «Пакет обработки MIME» Python?

#python #email #mime

#python #Адрес электронной почты #mime

Вопрос:

Здесь приведена документация о том, как отправить электронное письмо: https://docs.python.org/3/library/email.examples.html

Полный код, который я пытался запустить, был…

 # Import smtplib for the actual sending function
import smtplib

# Import the email modules we'll need
from email.message import EmailMessage

# Open the plain text file whose name is in textfile for reading.

# Create a text/plain message
msg = EmailMessage("HI")


# me == the sender's email address
# you == the recipient's email address
msg['Subject'] = "SubjectLine"
msg['From'] = aaaaa@gmail.com
msg['To'] = aaaaa@yahoo.com

# Send the message via our own SMTP server.
s = smtplib.SMTP('localhost')
s.send_message(msg)
s.quit()
 

Я получаю сообщение об ошибке в 16-й строке кода

 msg['Subject'] = "SubjectLine"
 

Ошибка: 'str' object has no attribute 'header_max_count'

Комментарии:

1. » Я получаю сообщение об ошибке в 16-й строке кода «… вы уверены ? Эта строка не имеет абсолютно никакого отношения к политикам и соответствует рекомендациям из официальной документации.

2. Можете ли вы объяснить, что, по вашему мнению, аргумент, который вы передали EmailMessage в строке EmailMessage("HI") , на самом деле делает …? Вы читали документацию EmailMessage , чтобы понять, что вы должны передавать в качестве аргумента? Не могли бы вы поделиться документом, на котором вы основываете свое понимание, который "HI" является допустимым аргументом для этой функции в данном контексте?

3. Спасибо за помощь. Я удалю этот пост, так как пересмотрю свой вопрос.

Ответ №1:

Похоже, у вас есть недопонимание того, как создать экземпляр экземпляра EmailMessage , и неясно, почему вы передали строку "HI" в качестве аргумента. В документации четко указано, что этот аргумент предназначен для получения информации о политике, которая будет включать header_max_count атрибут, который, по-видимому, ожидается.

Удалите это ненужное использование "HI" в вашем коде:

 msg = EmailMessage()