如何从电子邮件Python中删除多余的语法?

2024-04-26 13:37:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个脚本,向使用Python中gmail的用户发送新用户名和密码。问题是消息中出现了多余的语法,这不是我想要的

#Sending Email containing new Username and Password
            Sub=("Password Change Request")
            Msg=("Hello, you have requested a Username and Password change."
                 "Your new credentials are Username: ",Username,"Password: ",Password,"")
            REmail=EmailF.get()
            try:
                server = smtplib.SMTP('smtp.gmail.com:587')
                server.ehlo()
                server.starttls()
                server.login(config.EMAIL_ADDRESS, config.PASSWORD)
                message = "Subject: {} \n\n {}".format(Sub, Msg)
                server.sendmail(config.EMAIL_ADDRESS, REmail, message)
                server.quit()
                print("Success!")

变量Username和Password是随机字符串。产生的电子邮件示例如下所示:

('Hello, you have requested a Username and Password change.Your new credentials are Username: ',
 'foo', 'Password: ', 'bar', '')

应该是:您好,您已经请求更改用户名和密码。 您的新凭据是用户名:用户名密码:密码


Tags: andyouconfig密码hellonewserverhave
1条回答
网友
1楼 · 发布于 2024-04-26 13:37:52

当做

message = "Subject: {} \n\n {}".format(Sub, Msg)

您正在将Msg传递给str.formatMsg是一个tuple,因此str.format尝试将其转换为可表示/可打印的形式,以便进行调试。是的,你不想用这个发邮件

相反,创建Msg作为字符串,同时使用str.format

Msg="Hello, you have requested a Username and Password change.\nYour new credentials are Username: {}, Password: {}".format(Username,Password)

如果字符串太长,您可以将其剪切并添加括号,但不要添加任何逗号(因为tuple会再次咬到您)

Msg=("Hello, you have requested a Username and Password change.\n"
 "Your new credentials are Username: {}, Password: {}").format(Username,Password)

相关问题 更多 >