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

使用Python smtplib发送邮件时主题缺失问题求助

解决邮件主题显示“无主题”的问题

嘿,我懂你的困扰——邮件能成功发送、正文也正常,但主题却显示“无主题”,这问题其实出在主题行的格式细节上!

问题根源

你原来的主题行写了:

Subject: 'Message Status'

这里的单引号是多余的,邮件客户端解析邮件头时,会把带单引号的内容判定为不符合标准格式,从而无法识别出正确的主题。你尝试的<Message Status>也没必要,主题字段不需要额外的包裹符号。

另外还要提一句:原代码里如果没显式导入SMTPException,运行时可能会触发名称未定义的错误,这个小细节也得补上。

修正后的代码

我帮你调整了代码,主要修复主题格式,同时补上了潜在的报错点和小细节:

import smtplib
from smtplib import SMTPException  # 显式导入异常类,避免报错

sender = 'singh@xyz.com'
receivers = ['singh2@xyz.com']
message = """From: Center <singh@xyz.com>
To: To Singh <singh@xyz.com>
Subject: Message Status

This is e-mail Body.
"""
try:
    smtpObj = smtplib.SMTP('mail22.xyz.rdc', 25)
    smtpObj.ehlo()  # 可选但推荐,部分SMTP服务器需要这步初始化连接
    smtpObj.sendmail(sender, receivers, message)
    smtpObj.quit()
    print("Successfully sent email")
except SMTPException:
    print("Error: unable to send email")

关键修改点

  • 移除了主题行的单引号,直接写成Subject: Message Status,让邮件客户端能正确识别主题字段
  • 修正了正文里的THis为This,提升内容规范性
  • 添加smtpObj.ehlo()调用(可选),部分SMTP服务器要求客户端先发送EHLO命令建立会话,能提升兼容性
  • 显式导入SMTPException,避免原代码可能出现的名称未定义错误

这样修改后,邮件主题应该就能正常显示为“Message Status”啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:05:59