Пример кода, который вы используете, создает сообщение MIME из нескольких частей.Все является вложением, включая тело сообщения.Если вы просто хотите отправить простой старый текстовый или HTML-текстовый текст, состоящий из одной части, вам не нужно ничего из MIME.Это просто добавляет сложности.Видите этот бит в вызове sendmail () вашего примера, где написано msg.as_string ()?Ну, это просто преобразует объекты MIME, которые вы создали, в текст.Достаточно просто указать текст самостоятельно, если вы имеете дело с текстом для начала.
Функция ниже аналогична коду, который я использовал для отправки файла журнала в сценарии, который я написал.Он принимает текстовое тело и преобразует его в предварительно отформатированный HTML (для лучшей работы в Outlook).Если вы хотите сохранить его в виде простого текста, просто выньте строку, в которой добавлены теги HTML, и измените заголовок Content-Type на «text / plain.»
<code>import smtplib
def sendmail(sender, recipient, subject, body, server="localhost"):
"Sends an e-mail to the specified recipient."
body = ("<html><head></head><body><pre>%s
"% body.replace ("&", "&"). replace ("<", "<")) headers = ["From:" + отправитель, "Subject:" + subject, "To:" + получатель, "MIME-версия: 1.0 "," Content-Type: text / html "] headers =" \ r \ n ".join (заголовки) session = smtplib.SMTP (сервер) session.sendmail (отправитель, получатель, заголовки +" \ r \ n\ r \ n "+ body) session.quit () </code>