Python:通过Gmail发送邮件的问题

0 投票
1 回答
553 浏览
提问于 2025-04-16 14:31

我正在尝试用一个人之前在这个网站上写的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()

错误追踪信息:


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 3.1.3版本。请问该怎么解决这个问题呢?

谢谢。

1 个回答

0

使用Python的'email'模块来生成格式正确的电子邮件。直接通过Python编写电子邮件时处理编码问题并不是一个好办法。

撰写回答