У меня есть почтовик, использующий python, и во время работы почтовой программы я получаю
error "Traceback (most recent call last):
File "C:\Users\Education\Documents\DDonnelly\Python\Email\2019_CCS_Renewal\main.py", line 11, in <module>
mailer()
File "C:\Users\Education\Documents\DDonnelly\Python\Email\2019_CCS_Renewal\ccs_renewal_mailer.py", line 35, in mailer
plaintext_body = ccs_plaintext_message.replace('{first_name}', first_name)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 364: ordinal not in range(128)"
Я добавил комментарий "# - - coding: utf-8 - -"к началу файла, но я все еще получаю этот код. я даже изменил кодировку реестра по умолчанию на utf с помощью приведенной ниже команды в CMD, и не повезло
"REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001"
ниже приведен фрагмент кода, на который ссылалась ошибка. Я ДЕЙСТВИТЕЛЬНО оценил бы любое руководство о том, как исправить это и заставить этот почтовик работать
КОД SNIPPET
# -*- coding: utf-8 -*-
import win32com.client as win32
from openpyxl import load_workbook
from ccs_renewal_message import ccs_html_message
from ccs_message_plaintext import ccs_plaintext_message
wb = load_workbook('ccs_renewal_list.xlsx')
Получает указанный лист Excel
sheet = wb.get_sheet_by_name('2019 Pending')
def mailer():
for row in sheet:
# Stores each individual's information in the variables below
first_name = row[2].value
last_name = row[1].value
full_name = row[2].value + " " + row[1].value
renewal_date_value = row[4].value
renewal_date = renewal_date_value.strftime('%m/%d/%Y')
email = row[3].value
ncbfaa_id = str(row[0].value)
# Opens outlook
outlook = win32.Dispatch('outlook.application')
# Gets email ready
mail = outlook.CreateItem(0)
mail.To = email
mail.Subject = 'Renewal'
#Plain Text Message
plaintext_body = ccs_plaintext_message.replace('{first_name}', first_name)
mail.Body = plaintext_body.replace('{renewal_date}', renewal_date)
#HTML Message
html_body = ccs_html_message.replace('{first_name}', first_name)
html_body2 = html_body.replace('{id}', ncbfaa_id)
mail.HTMLBody = html_body2.replace('{renewal_date}', renewal_date)
C:\Users\Education\Documents\DDonnelly\Python\Email\2019_CCS_Renewal>main.py
Eduardo Lozano's certificate has been created
Traceback (most recent call last):
File "C:\Users\Education\Documents\DDonnelly\Python\Email\2019_CCS_Renewal\main.py", line 11, in <module>
mailer()
File "C:\Users\Education\Documents\DDonnelly\Python\Email\2019_CCS_Renewal\ccs_renewal_mailer.py", line 35, in mailer
plaintext_body = ccs_plaintext_message.replace('{first_name}', first_name)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 364: ordinal not in range(128)