You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地Visual Studio运行Python邮箱验证程序出现utf-8解码报错如何解决?

报错解决方案

第一步:先修正代码中的语法错误

现有代码存在3处可直接触发运行异常的低级错误,先修复:

  • 第7行message定义处缺少字符串拼接符号,修正为:
message = ("Here is E-Mail authentication system"+ " :" + str(randomCode))
  • 第21行sendmail方法的发件人变量拼写错误,前面定义的变量是mailaddress,此处写的是mailadress(少了1个字母d),修正为:
mail.sendmail(mailaddress, sendTo, contents.encode("utf-8"))
  • except代码块下的print语句没有缩进,补全4空格缩进。

第二步:解决UTF-8解码报错

该报错由本地VS运行环境的默认编码和程序预期的UTF-8不匹配导致,按以下方法处理:

  • 调整VS终端默认编码:打开VS设置,搜索terminal.integrated.shellArgs.windows(Windows系统),添加参数["/K", "chcp 65001"],将终端默认编码切换为UTF-8。
  • 也可以在代码开头添加以下内容,强制Python使用UTF-8编码处理IO流:
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')
  • 邮件内容编码可以额外增加错误忽略参数,避免特殊字符导致解码失败:
contents.encode("utf-8", errors="ignore")

额外适配提示

如果修改后出现SMTP登录报错,注意Gmail的SMTP服务现已不支持普通账号密码登录,需要先开启账号两步验证,生成应用专用密码后,用专用密码替换代码中的password字段即可正常发送邮件。

内容的提问来源于stack exchange,提问作者Eldarionn61

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:54:04