У меня проблемы с получением этого письма для отправки, я передаю правильные переменные, но я не могу отправить его из-за отсутствия £
в ASCII.Я не уверен, что делать с кодировкой сообщения, или даже если сообщение вообще нужно кодировать.
Sub = ("Event Consent")
Msg = (
"Hello,\n Your Scout, %s , %s has expressed his interest in this event:\n"
"Event Name: %s\n"
"Event Start Date: %s\n"
"Event End Date: %s\n"
"Event Start Time: %s\n"
"Event End Time: %s\n"
"Cost: %s\n"
"If you wish your son to not attend this event, please log into the system and remove him." % (FName, SName, ListValues[0], ListValues[1], ListValues[2], ListValues[3], ListValues[4], ListValues[5]))
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)
print(message)
server.sendmail(config.EMAIL_ADDRESS, Email, message)
server.quit()
print("Success!")
Пример сообщения:
Your Scout, Woogles , TheStout has expressed his interest in this event:
Event Name: Woogles Event
Event Start Date: 23/11/2018
Event End Date: 27/12/2019
Event Start Time: 17:13
Event End Time: 24:13
Cost: £400
If you wish your son to not attend this event, please log into the system and remove him.
Ошибка:
UnicodeEncodeError: 'ascii' codec can't encode character '\xa3' in position 247: ordinal not in range(128)
Я уже пробовал:
Msg.encode('utf-8')
Однако это не сработало.Буду признателен за любую помощь.
Дальнейшие вопросы: почему python требует, чтобы это было в Unicode?Я думал, что SMTP уже был основан на Unicode?