如何将从服务器API获取的找回密码响应内容发送至用户邮箱?
邮件发送失败排查方案
重要提示:明文向用户发送找回的密码属于高风险操作,存在严重的账号泄露隐患,优先推荐使用时效有限的密码重置链接替代明文密码传输,若确认必须发送明文密码可参考以下步骤排查问题
1 基础配置校验
- 邮件服务配置校验:
- 若使用SMTP服务发信:确认SMTP服务器地址、端口、加密方式(SSL/TLS/STARTTLS)配置正确,注意绝大多数邮件服务商不支持直接使用账号密码登录SMTP,需要单独生成专用授权码作为登录凭证
- 若使用第三方邮件推送API发信:确认API密钥有效,发件人地址、发件人域名已在服务商后台完成白名单配置,域名的SPF/DKIM/DMARC解析记录配置正确,避免邮件被服务商判定为伪造邮件直接拦截
2 网络与权限排查
- 检查部署服务所在服务器的出站端口是否放开,多数云服务商默认封禁25端口,可尝试更换为465(SSL)或587(TLS)端口测试
- 检查邮件服务商后台的发送限制,确认是否触发了单日发送量上限、风控拦截规则,可查看服务商的投递日志确认具体报错原因
3 内容与收件人校验
- 校验收件人邮箱地址格式合法,不存在拼写错误、无效账号等问题
- 检查邮件标题、正文内容是否包含垃圾邮件敏感词,符合对应邮件服务商的内容规范
Python SMTP发信示例代码:
import smtplib from email.mime.text import MIMEText from email.header import Header # 替换为自身业务配置 SMTP_SERVER = "smtp.你的邮件服务商.com" SMTP_PORT = 465 SENDER_EMAIL = "你的发件邮箱地址" SENDER_AUTH_CODE = "你的SMTP授权码" RECEIVER_EMAIL = "用户收件邮箱地址" # 构造邮件内容 mail_content = MIMEText(f"你本次找回的账号密码为:xxx", "plain", "utf-8") mail_content["From"] = Header(f"平台名称 <{SENDER_EMAIL}>", "utf-8") mail_content["To"] = Header(RECEIVER_EMAIL, "utf-8") mail_content["Subject"] = Header("账号密码找回通知", "utf-8") try: smtp_client = smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT) smtp_client.login(SENDER_EMAIL, SENDER_AUTH_CODE) smtp_client.sendmail(SENDER_EMAIL, RECEIVER_EMAIL, mail_content.as_string()) print("邮件发送成功") except smtplib.SMTPException as err: print(f"邮件发送失败,错误信息:{err}") finally: smtp_client.quit()
内容的提问来源于stack exchange,提问作者Shweta
相关产品推荐
相关产品推荐

