2017-04-14 25 views
0

當我試圖使用Python發送一封電子郵件,我遇到了這個錯誤,這裏是代碼:Python的UTF-8誤差

from_addr = '*@163.com' 
password = '*' 
to_addr = '*@qq.com' 
smtp_server = 'smtp.163.com' 

import smtplib 
server = smtplib.SMTP(smtp_server, 25) 
server.set_debuglevel(1) 
server.login(from_addr, password) 
server.sendmail(from_addr, [to_addr], msg.as_string()) 
server.quit() 

則輸出是:

Traceback (most recent call last): 
    File "C:\Users\Desktop\smtp.py", line 17, in <module> 
    smtp = smtplib.SMTP() 
    File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\smtplib.py", line 260, i 
    fqdn = socket.getfqdn() 
    File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\socket.py", line 673, in 
    hostname, aliases, ipaddrs = gethostbyaddr(name) 
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte 
+1

那麼你的主機名是什麼?它是否包含非ASCII字符? –

回答

0

你可以嘗試使用name.decode()解決非ASCII字符的問題。