Странный нежелательный заголовок при чтении текстового файла с MIMEText - PullRequest
0 голосов
/ 19 апреля 2020

Я пишу программу для чтения из текстового файла. Мне удалось заставить его работать, но я получаю странный заголовок, который мне не нужен.

Текстовый файл называется SixMonthTextFile.txt и сохраняется с помощью блокнота в windows.

Нежелательный заголовок, который я получаю, -

Content-Type: text / plain; charset = "us-ascii"
MIME-версия: 1.0

Content-Transfer -Кодирование: 7bit

Текст текста, прочитанный из файла здесь

Я попытался удалить первые 3 строки, и это не работает, просто вызывает новые проблемы. Любые идеи о том, почему это происходит и, что более важно, как это остановить?

Мой код

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

#Read an external text file for body of message
fp = open('SixMonthTextFile.txt', 'r')
SixMonthMessage = MIMEText(fp.read())
fp.close()

print(SixMonthMessage)

В результате я получаю

Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

We would like to remind you that it has been six months
since your last service and its time for a precautionary service
since your equipment needs regular servicing to remain reliable.

Please reply to this email to book your FREE appointment.
[Finished in 0.4s]

Я хочу только оригинальный текст из текстовый файл как таковой входит в тело письма.

Есть идеи, почему я получаю странный нежелательный дополнительный заголовок и как от него избавиться?

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

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

0 голосов
/ 20 апреля 2020

Итак, я попробовал предложение stovfl и поиграл с добавлением get_payload (), '3 \ n' в оператор MIMEText (fp.read (), и он удалил ненужный заголовок, но также испортил формат текстового файла, и я до сих пор имел неиспользуемый результат.

Я обошел проблему, подойдя под другим углом и заменив fp = open () et c на

open ('SixMonthTextFile.txt', 'r ') как файл: SixMonthTextFile = file.read ()

' ''

Это дало мне текст, который затем можно было использовать как отформатированный в текстовом файле для вставки в электронное письмо.

def sendsixmonthemail(address, EmailTo):
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

#Read an external text file for body of message
with open('SixMonthTextFile.txt', 'r') as file:
    SixMonthTextFile = file.read()



host="smtp.gmail.com"
email="myemailaddress@gmail.com"
password = "123456786"

from_addr='myemailaddress@gmail.com'
to_addr=EmailTo
reply_address = "myemailaddress@gmail.com"

msg=MIMEMultipart()
msg['From']=from_addr
msg['To'] = to_addr
msg['reply-to'] = "myemailaddress@gmail.com"
msg['subject']='FREE 6 month Service Reminder for' + " " + address

#Data read from Text File
body= str(SixMonthTextFile)


msg.attach(MIMEText(body,'plain'))

mail=smtplib.SMTP_SSL(host,465)
mail.login(email,password)
text=msg.as_string()

mail.sendmail(email,to_addr,text)
mail.quit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...