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

使用smtpd模块发送邮件无报错但未送达的问题求助

问题分析与解决方法

核心错误:模块使用错误

你代码里导入的smtpd是Python用于创建SMTP服务器的模块,并非发送邮件的客户端模块,正确的客户端模块是smtplib。

修正后的代码示例

import smtplib
from email.mime.text import MIMEText

# 替换为你的实际配置
my_email = "你的Gmail邮箱地址"
password = "你的应用专用密码"
email = "收件人邮箱地址"

# 构建符合SMTP规范的邮件内容
msg = MIMEText("Hello")
msg["From"] = my_email
msg["To"] = email
msg["Subject"] = "测试邮件"  # 必须添加主题,否则易被拦截

try:
    # 连接Gmail SMTP服务器,指定端口587
    connection = smtplib.SMTP("smtp.gmail.com", 587)
    connection.starttls()
    connection.login(my_email, password)
    # 发送格式化后的邮件
    connection.sendmail(my_email, email, msg.as_string())
    print("邮件发送成功")
finally:
    connection.close()

关键注意事项(Gmail用户)

  • 禁止使用原密码登录:Gmail默认关闭普通密码的SMTP登录权限,需开启两步验证后,创建应用专用密码替代原密码使用。
  • 邮件格式必须规范:直接传递字符串"Hello"不符合SMTP协议要求,必须通过email.mime类构建包含头信息的完整邮件,否则服务器会拒绝或丢弃邮件。
  • 确认服务器端口:Gmail SMTP服务的starttls端口为587,若使用SSL加密可改用465端口,对应smtplib.SMTP_SSL方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:52:39