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

Python使用SMTP仅发送邮件正文无报错但发送失败问题求助

发送失败核心原因

  • 运营商的邮件转短信网关对接收的邮件有强制格式校验,仅发送纯文本正文会被判定为非法格式,网关会直接丢弃该消息,因此程序不会抛出报错,但你也收不到对应短信
  • 原有代码还存在一处笔误:server.quit是SMTP实例的方法,必须加括号()才会实际执行退出逻辑,不过这不是发送失败的核心问题

最简可行实现

你不需要构造复杂的multipart结构,只需要在正文前拼接标准的From、To、Subject头字段即可,将Subject设为空就不会在短信里显示额外的主题内容,只会输出你要发送的正文,示例代码如下:

import smtplib

email = "myemail@outlook.com"
pwd = "my_password"
phone_num = "my_number@tmomail.net"
server = smtplib.SMTP('smtp.office365.com', 587)

server.starttls()
server.login(email, pwd)

# 拼接标准邮件头,Subject留空避免短信出现多余前缀
message = f"From: {email}\nTo: {phone_num}\nSubject: \n\nThis working?"
server.sendmail(email, phone_num, message)
server.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 22:54:03