在函数中使用 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。一旦我删除它们并将它们与函数的开头对齐,它就起作用了。
当我 运行 我的代码在函数之外时,所有内容都正确显示,但是当我将它添加到函数中时,主题、来往行不会出现在电子邮件中
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。一旦我删除它们并将它们与函数的开头对齐,它就起作用了。