Python smtplib-不使用变量发送



我正在尝试使用smtplib库发送电子邮件。它工作正常,但如果我的消息包含一个固定字符串+变量,它就不起作用。

这是我的代码:

destinationEmail = 'destination@gmail.com'
server = smtplib.SMTP("smtp.gmail.com", 587) 
server.starttls() 
server.login("me@gmail.com", "password") 
message = f"I am sending this variable: {variableName}" 
server.sendmail("me@gmail.com", destinationEmail, message)

使用上面的代码是不起作用的。我也尝试过使用这种格式的消息:

message = "I am sending this variable: " + variableName

它也不起作用。如果我的消息没有变量,它会成功发送,比如:

message = "testing"

我尝试过的另一件事是单独发送变量,比如:

message = variableName

这很管用!所以我真的很困惑这里出了什么问题。它似乎不想发送具有固定字符串+变量的消息。顺便说一句,我使用的变量是字符串类型的。即使我在变量周围使用str((,它也不起作用。

这通常是一个版本问题,但你总是可以用你的f-string代替message = "I am sending this variable: {}".format(variable_name),这对我很有效。

答案就在这里:如何在python3中使用smtplib通过电子邮件发送变量值?

使用MIMEText构造消息(主题为"from"one_answers"to"(@逃税者对这件事说得对。我想这需要一个主题。

最新更新