我的python程序无法通过电子邮件发送特殊字符

2024-06-28 20:34:18 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码,我所要做的就是发送电子邮件,收集一些通过网络垃圾获得的信息,但由于我是法国人,必须使用特殊字符,如é 或者è 我不知道怎么换衣服。我也愿意接受建议,谢谢

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
import smtplib

my_url = "http://www.meteofrance.com/previsions-meteo-france/castres/81100"

#ouvre la page
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()

#lit le code html
page_soup= soup(page_html,"html.parser")

#séléctionne la div avec la météo des plusieurs jours
météo = page_soup.find("div",{"class":"liste-jours"})

météo_jour = météo

#choisi le titre de la bonne liste à sélectionner pour avoir la date du jour, et ce titre contient la météo
ciel = météo_jour.li["title"]
mini = météo_jour.li.find("span",{"class":"min-temp"})
maxi = météo_jour.li.find("span",{"class":"max-temp"})

mini = mini.text
maxi = maxi.text

ciel = ciel.replace("é", "e")
ciel = ciel.replace("É","E")
maxi = str(maxi).replace("°","*")
mini = str(mini).replace("°","*")

with smtplib.SMTP("smtp.gmail.com", 587) as smtp:
    smtp.ehlo()
    smtp.starttls()
    smtp.ehlo()

    smtp.login("..............","................")

    subject = "meteo"
    body = str(ciel)+", "+"la temperature sera de : "+mini+","+maxi+"."

    msg= f"Subject:{subject}\n\n{body}"

    smtp.sendmail("javis81100@gmail.com", ["..............",".................."], msg)```

Tags: importcomhtmlaspagefindsmtpla
1条回答
网友
1楼 · 发布于 2024-06-28 20:34:18

只需添加变量msg encode('utf-8'),如下所示:

smtp.sendmail("javis81100@gmail.com", ["..............",".................."], msg.encode('utf-8'))

然后邮件看起来是这样的:

Éclaircies, la temperature sera de : 14°C Minimale,16°C Maximale.

相关问题 更多 >