Как удалить лишний синтаксис из электронной почты Python? - PullRequest
0 голосов
/ 21 октября 2018

Я пишу скрипт, который отправляет новые имена пользователей и пароли людям, использующим gmail в Python.Проблема в том, что в сообщении появляется лишний синтаксис, а это не то, что мне нужно.

#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!")

Переменные Имя пользователя и Пароль - это случайные строки символов.Пример созданного электронного письма можно увидеть ниже:

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

Оно должно выглядеть так: Здравствуйте, вы запросили изменение имени пользователя и пароля.Ваши новые учетные данные: Имя пользователя: Имя пользователя Пароль: Пароль

1 Ответ

0 голосов
/ 21 октября 2018

при выполнении

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

вы передаете Msg на str.format.Msg - это 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...