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

通过SMTP发送邮件出现‘NoneType’ object has no attribute ‘encode’错误排查

问题原因及解决方法

错误根源

你的代码中password = os.environ.get("EMAIL_PASSWORD")这一行未获取到有效的密码值,导致password为None类型。当smtplib的login方法尝试对None执行编码(encode)操作时,就会抛出'NoneType' object has no attribute 'encode'的错误。

解决步骤

  • 先确认运行环境中是否正确配置了名为EMAIL_PASSWORD的环境变量,变量值为你的Office365邮箱登录密码(如果开启了两步验证,需使用应用专用密码而非普通登录密码)。
  • 测试阶段可临时直接赋值密码(注意:生产环境绝对不要硬编码密码,会造成安全风险):
    password = "你的实际邮箱密码/应用专用密码"
    
  • 额外优化:server.sendmail中的发件人和收件人可直接复用之前定义的变量,避免重复写字符串引发拼写错误:
    server.sendmail(sender_email, email_receiver, em.as_string())
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 02:57:28