Python smtplib主题在函数内部不起作用
在使用用于Python的smtplib时,我遇到了一个奇怪的现象。我正在使用f字符串和两个Python smtplib主题在函数内部不起作用,python,smtplib,Python,Smtplib,在使用用于Python的smtplib时,我遇到了一个奇怪的现象。我正在使用f字符串和两个\n来分隔主题标题,编写一条简单的消息。这在函数外部工作正常,但在函数内部则表现不同 从功能外部发送的电子邮件主题为“功能外部” 从函数内部发送的电子邮件带有主题:“无主题” 为什么会这样 当然,我想解决这个问题,但最终我更感兴趣的是什么导致了这一问题 下面的代码。。。如果你想测试,只需输入你的gmail地址和密码 import smtplib login = "youremail@gmail.
\n
来分隔主题标题,编写一条简单的消息。这在函数外部工作正常,但在函数内部则表现不同
从功能外部发送的电子邮件主题为“功能外部”
从函数内部发送的电子邮件带有主题:“无主题”
为什么会这样
当然,我想解决这个问题,但最终我更感兴趣的是什么导致了这一问题
下面的代码。。。如果你想测试,只需输入你的gmail地址和密码
import smtplib
login = "youremail@gmail.com"
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)
python缩进仅适用于命令,不适用于多行字符串。当你给空间时,它有不同的语法,但不一样。上述操作将产生相同的结果
如果你不想要不必要的缩进,从第一行开始
import smtplib
login = "test@gmail.com"
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缩进仅适用于命令,不适用于多行字符串。当你给空间时,它有不同的语法,但不一样。上述操作将产生相同的结果
如果你不想要不必要的缩进,从第一行开始
import smtplib
login = "test@gmail.com"
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()
你能添加失败的代码吗?你说的“但在一个”中行为不同是什么意思?行为的具体区别是什么?@PDHide-没有代码失败,只是在函数内外运行同一代码块的不同行为。@Korashen-谢谢,更新了有关电子邮件行为的更多信息。你能添加失败的代码吗?你说的“但在函数内部时行为不同”是什么意思?行为的具体区别是什么?@PDHide-没有代码失败,只是在函数内外运行同一代码块的不同行为。@Korashen-谢谢,更新了一些关于电子邮件行为的信息。在OP的代码中,用不同的方式说,标题名称不在不遵守SMTP协议的行的开头,因为它包含外部和内部作品,但具有不同的主题和格式。OPs认为两者的格式是相同的。换句话说,在OP的代码中,标题名称不在不遵守SMTP协议的行的开头,而是具有不同的主题和格式。OPs认为两者的格式相同