使用smtplib for Python时,我遇到一种奇怪的现象。我正在使用f字符串和两个\n
定界主题标头来编写一条简单的消息。在函数外部时,此方法工作良好,但在函数内部时,其行为不同。
从功能外部发送的电子邮件带有主题:“功能之外”从功能内部发送的电子邮件带有主题:“无主题”
为什么是这样?
当然,我想解决这个问题,但是最终我对造成这种情况的原因更感兴趣!
下面的代码...如果您想测试,只需拍一下您的Gmail地址和密码即可。
import smtplib
login = "[email protected]"
password = "yourpassword"
name = "name"
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(login, password)
def sendMail():
message = f"""\
Subject: Sent from inside a function
To: {login}
From: {login}
Hello {name},
This is sent from inside a function"""
server.sendmail(login, receiver, message)
sendMail()
message = f"""\
Subject: Outside a function
To: {login}
From: {login}
Hello {name},
This is sent from outside a function"""
server.sendmail(login, receiver, message)
import smtplib
login = "[email protected]"
password = "test"
receiver=login
name = "name"
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(login, password)
def sendMail():
message = f"""\
Subject: Sent from inside a function
To: {login}
From: {login}
Hello {name},
This is sent from inside a function"""
server.sendmail(login, receiver, message)
sendMail()
python缩进仅适用于不适用于多行字符串的命令。当您提供空间时,它具有不同的语法。上面将创建相同的结果
https://stackoverflow.com/a/2504457/6793637
如果您不想不必要的缩进,请从第一行开始
import smtplib
login = "[email protected]"
password = "test"
receiver=login
name = "name"
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(login, password)
def sendMail():
message = f"""Subject: Sent from inside a function
To: {login}
From: {login}
Hello {name},
This is sent from inside a function"""
server.sendmail(login, receiver, message)
sendMail()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句