2011-03-27 132 views
0

我想发送一封电子邮件(通过gmail)使用Python脚本,有人曾在这个网站上写过,但我得到一个错误: UnicodeDecodeError:'utf8'编解码器不能在位置2解码字节0xe8:无效延续字节Python:通过gmail发送邮件问题

脚本:

 

import smtplib 
from email.mime.text import MIMEText 
#mail setup 
FROMMAIL = "[email protected]" 
LOGIN = FROMMAIL 
PASSWORD = "yyy" 
SUBJECT = "test subject" 
TOMAIL = "[email protected]" 

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() 
 

堆栈跟踪:

 

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

使用Python的'email'模块来生成正确格式的电子邮件。 在应用程序级别处理编码问题时,直接通过Python编写电子邮件不是要走的路。

+0

我按照你的指示编辑了剧本(和原文)。但问题仍然存在。 – frenzy 2011-03-27 12:41:39

+0

然后我不确定我明白你的意思:| ..请你解释一下吗? – frenzy 2011-03-27 13:04:41

+0

我想出了什么是问题,它没有与代码连接(这工作得很好btw。)。所以我会接受你的回答,这给了我一些好的方向。 – frenzy 2011-03-27 21:01:18