2011-03-27 168 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