我正在尝试使用某人曾在此网站上写过的python脚本发送电子邮件(通过gmail),但我收到错误消息: UnicodeDecodeError:'utf8'编解码器无法解码位置2中的字节0xe8:无效的连续字节
脚本:
import smtplib
from email.mime.text import MIMEText
#mail setup
FROMMAIL = "xxx@gmail.com"
LOGIN = FROMMAIL
PASSWORD = "yyy"
SUBJECT = "test subject"
TOMAIL = "xxx@gmail.com"
msg = MIMEText('testcontent')
msg['Subject'] = 'test'
msg['From'] = FROMMAIL
msg['To'] = TOMAIL
server = smtplib.SMTP('smtp.gmail.com', 587)
server.set_debuglevel(1)
server.ehlo()
server.starttls()
server.login(LOGIN, PASSWORD)
server.sendmail(FROMMAIL, [TOMAIL], msg.as_string())
server.quit()
stacktrace:
Traceback (most recent call last):
File "C:\Users\xxx\Desktop\test.py", line 11, in
server = smtplib.SMTP('smtp.gmail.com', 587)
File "C:\Program Files\Python31\lib\smtplib.py", line 248, in __init__
fqdn = socket.getfqdn()
File "C:\Program Files\Python31\lib\socket.py", line 290, in getfqdn
name = gethostname()
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe8 in position 2: invalid continuation byte
我使用的是python v3.1.3。 如何解决这个问题?
谢谢。
答案 0 :(得分:0)
使用Python的“email”模块生成正确的格式化电子邮件。 在通过Python直接编写电子邮件时,处理应用程序级别的编码问题是不可取的。