在函数中使用 smtplib 不会读取 To:、From: 和主题行

Using smtplib in a function will not read To:, From:, and subject line

当我 运行 我的代码在函数之外时,所有内容都正确显示,但是当我将它添加到函数中时,主题、来往行不会出现在电子邮件中

def change_other():
message = """\

Subject: {Employee} -- Change -- Title Change
From: test@test.com
To: test@test.com


We have received a title update for {Employee}. 

    Title: {Title}

    Old: {Old}

    New: {New}

    Profit Center: {PC}

    Supervisor: {Supervisor}


"""

from_address = "test@test.com"
password = "abc123"

smtp = smtplib.SMTP("smtp.office365.com",587)
context = ssl.create_default_context()
with smtplib.SMTP("smtp.office365.com",587) as server:
    server.starttls(context=context)
    server.login(from_address, password)

    for i, r in db[field2].iterrows():     
            server.sendmail(
                from_address,
                "test@test.com",
                message.format(Employee=r["Employee Name"],
                   Old=r["Old Value"],
                               New=r["New Value"],
                               PC=r["PC"],
                               Title=r["Title"],
                               Email=r["Email"], 
                               Supervisor=r["Supervisor Name"]


                )
            )

这样做的目的是根据 csv 文件上的特定输入发送不同的电子邮件。

我确实收到了电子邮件,但他们只是缺少主题,电子邮件中的来往内容。 body 显示得很好。

所以我通过测试弄明白了这一点。在我的实际代码中,我标记了 TO、FROM 和 SUBJECT。一旦我删除它们并将它们与函数的开头对齐,它就起作用了。