Python:通过gmail问题发送邮件

时间:2011-03-27 12:03:37

标签: python email unicode gmail decode

我正在尝试使用某人曾在此网站上写过的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。 如何解决这个问题?

谢谢。

1 个答案:

答案 0 :(得分:0)

使用Python的“email”模块生成正确的格式化电子邮件。 在通过Python直接编写电子邮件时,处理应用程序级别的编码问题是不可取的。