Я пытаюсь отправить электронные письма большому количеству людей (более 100), но после 988-го символа вводится новая строка, которая прерывает строку электронной почты, вызывая ошибку «невозможности доставки».
Я относительно новичок в кодировании в целом, но мне удалось собрать воедино некоторые фрагменты кода из некоторых онлайн-исследований. Вместо этого я попытался использовать объект Header
, но получил тот же результат.
т.е:.
from email.header import Header
msg['To'] = str(Header(','.join(list_of_emails)))
из ограниченной информации, которую мне удалось найти, я понял, что заголовок должен быть свернут для соответствия форматам RC 2822, но я не знаю, как это сделать.
import smtplib
from email.message import EmailMessage
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
msg = MIMEMultipart()
msg['From'] = me
msg['To'] = ','.join(['john@example.com', 'mary@example.com',
..., 'mike@example'])
msg['Subject'] = subject
body = 'enter text here'
msg.attach(MIMEText(body,'plain'))
filename = 'abc123.xlsx'
attachment = open('C:\Users\......', "rb")
part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
attachment.close()
encoders.encode_base64(part)
part.add_header('Content-Disposition', f"attachment; filename={filename}")
msg.attach(part)
server = smtplib.SMTP('smtp.office365.com', 587)
server.starttls()
server.login(user, password)
server.send_message(msg)
server.quit()
Блок кода выполняет именно то, что я от него ожидаю: отправлять электронную почту, включая соответствующие заголовки, текст и вложение. У меня нет проблем, которые возникают, пока я не начну включать большое количество получателей в msg['To']
. Например, если используется список, содержащий более 100 электронных писем, некоторые из них прерываются с разрывом строки и отображаются следующим образом: 'bobsmith@ex ample.com'
Я полагаю, что столкнулся с этой проблемой из-за ограничений символов в 1 строке, однако я не знаю, как я может преодолеть эту проблему.