результаты поиска не помогли. Я новичок в кодировании, и в качестве проблемы я попытался очистить веб-сайт от погодных данных и затем отправить эти данные на мою электронную почту.Я подозреваю, что кириллица - причина, по которой электронное письмо не будет отправлено.Я запустил несколько тестов, и если я передам нормальный латинский язык для моих параметров 'subject' & 'msg', почта сработает, но если у одного из них будет какой-нибудь нелатинский, почта не пройдет.Мои знания Unicode очень ограничены, и почему это даже может привести к ошибке, мне неизвестно
import smtplib
import config
import requests
from bs4 import BeautifulSoup
def weather():
src = requests.get('https://www.sinoptik.bg/asenovgrad-bulgaria-100733618').text
soup = BeautifulSoup(src, 'lxml')
city_name = soup.find('h1').text
current_temp = soup.find('span', class_='wfCurrentTemp').text
feels_temp = soup.find('span', class_='wfCurrentFeelTemp').text
weather_type = soup.find('strong').text
a = f'{city_name}\nТемпературата вмомента е {current_temp}\n{feels_temp}C\nОчаква се предимно {weather_type} време.'
return a
def send_email(subject, msg):
try:
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(config.EMAIL_ADRESS, config.PASSWORD)
message = 'Subject: {}\n\n{}'.format(subject, msg)
server.sendmail(config.EMAIL_ADRESS, config.SEND_TO, message)
server.quit()
print('Success: Email sent!')
except:
print('Email failed to send.')
subject = 'Дневна прогноза за времето'
msg = weather()
send_email(subject, msg)
, когда я удаляю try /, за исключением того, что я получаю следующую ошибку:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 9-14: ordinal not in range(128)
, используя.encode ('utf-8) мне удалось получить электронное письмо для отправки, но я получил символы ascii.
b'\xd0\x90\xd1\x81\xd0\xb5\xd0\xbd\xd0\xbe\xd0\xb2\xd0\xb3\xd1\x80\xd0\xb0\xd0\xb4\n\xd0\xa2\xd0\xb5\xd0\xbc\xd0\xbf\xd0\xb5\xd1\x80\xd0\xb0\xd1\x82\xd1\x83\xd1\x80\xd0\xb0\xd1\x82\xd0\xb0 \xd0\xb2\xd0\xbc\xd0\xbe\xd0\xbc\xd0\xb5\xd0\xbd\xd1\x82\xd0\xb0 \xd0\xb5 18\xc2\xb0C\n\xd0\xa3\xd1\x81\xd0\xb5\xd1\x89\xd0\xb0 \xd1\x81\xd0\xb5: 18\xc2\xb0C\n\xd0\x9e\xd1\x87\xd0\xb0\xd0\xba\xd0\xb2\xd0\xb0 \xd1\x81\xd0\xb5 \xd0\xbf\xd1\x80\xd0\xb5\xd0\xb4\xd0\xb8\xd0\xbc\xd0\xbd\xd0\xbe \xd0\xa1\xd0\xbb\xd1\x8a\xd0\xbd\xd1\x87\xd0\xb5\xd0\xb2\xd0\xbe \xd0\xb2\xd1\x80\xd0\xb5\xd0\xbc\xd0\xb5.'
, затем я попытался расшифровать его обратно с помощью .decode (), но электронная почта не работаетснова?