Python 如何在发送电子邮件时删除 header?

Python how to remove header when sending an email?

我正在尝试删除 header 部分,目前收到的电子邮件如下所示:

.

我不想在收件人收到邮件时显示它,我不知道如何隐藏它。

我试图删除它,但收到错误消息。该代码包含在内,但在下面被注释掉了。

import donator
import csv
import os
import smtplib
from email.message import EmailMessage
from email.mime.text import MIMEText


def ReadEmailTemplate():
    oFile = open('EmailTemplate.txt', 'r')
    Subject = oFile.readline()
    Body = oFile.read()
    return [Subject, Body]

def ReadCSVFile():
    with open('ExampleData.csv', 'r') as csv_file:
        csv_reader = csv.reader(csv_file)
        allDonators = []
        for line in csv_reader:
            Number = line[0]
            Name = line[1]
            Amount = line[2]
            Date = line[3]
            Mode = line[4]
            Email = line[5]
            allDonators.append(donator.Donator(Number, Name, Amount, Date, Mode, Email))
    return allDonators

txt = ReadEmailTemplate()
Subject = txt[0]
Body = txt[1]

# READ VALUES FROM CSV FILE AND RUN THROUGH THEM
allDonators = ReadCSVFile()

# CREATE EMAIL WITH THOSE VALUES
for donator in allDonators:
    print(f'Sending email to: {donator.Name} at {donator.Email}...')
    msg = EmailMessage()
    Body = MIMEText(
        Body.replace('REPLACE_DATE', donator.Date).replace('DONATION_AMOUNT', donator.Amount).replace('DONATION_DATE',
                                                                                                      donator.Date))
    msg.set_content(Body)
    msg['From'] = os.environ['PERS_EMAIL']
    msg['To'] = donator.Email
    msg['Subject'] = Subject.replace('CUSTOMER_NAME', donator.Name)
    print(msg.get('Content-Type'))
    print(msg.get('Content-Transfer-Encoding'))
    print(msg.get('MIME-Version'))
    #for hdr in ['Content-Type', 'Content-Transfer-Encoding', 'MIME-Version']:
    #    del msg[hdr]
    with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
        smtp.login(os.environ['PERS_EMAIL'], os.environ['PERS_EMAILPW'])
        smtp.sendmail(os.environ['PERS_EMAIL'], donator.Email, msg.as_string())
    

smtplib.SMTP_SSL('smtp.gmail.com', 465).quit()

ReadEmailTemplate中,你有Subject = oFile.readline()file.readline() 在行中留下换行符 '\n'。因此,您的主题行后跟一个空行,它终止了 headers,headers 的其余部分被视为消息。就这样

Subject = oFile.readline().strip()

请注意,您不必拆分 CSV 的字段:

    for line in csv_reader:
        allDonators.append(donator.Donator(*line))