2017-04-14 61 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字符的问题。