Преобразование SMTP-сообщения из ASCII в Unicode в Python - PullRequest
0 голосов
/ 27 ноября 2018

У меня проблемы с получением этого письма для отправки, я передаю правильные переменные, но я не могу отправить его из-за отсутствия £ в 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?

...