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

Python发送邮件遇smtplib.SMTPRecipientsRefused错误求助

解决smtplib.SMTPRecipientsRefused错误

错误根源

你的代码存在两个核心问题:

  1. sendmail参数传值错误:smtp.sendmail的第二个参数要求传入收件人邮箱地址,你错误地传入了email_password,导致SMTP服务器把密码识别成收件人地址,触发了无效RFC-5321地址的报错。
  2. 邮箱密码配置错误:email_password的值写为'google login',Gmail通过SMTP发件需要使用应用专用密码,而非普通账号密码(尤其开启两步验证后,必须用应用密码)。
  3. 额外细节问题:变量名email_reciver拼写错误,应为email_receiver;邮件头em['TO']的规范写法是em['To'](部分场景不影响功能,但建议遵循标准)。

修正后的代码

from email.message import EmailMessage
import ssl
import smtplib

email_sender = 'oropyt32@gmail.com'
# 替换为你的Gmail应用专用密码
email_password = '你的应用专用密码'
email_receiver = 'milkiwasihunpro@gmail.com'

subject = 'Check mate'
body = """
I am making this sending this isnt it cool oro
"""

em = EmailMessage()
em['From'] = email_sender
em['To'] = email_receiver
em['Subject'] = subject
em.set_content(body)

context = ssl.create_default_context()

with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as smtp:
    smtp.login(email_sender, email_password)
    # 第二个参数修正为收件人邮箱
    smtp.sendmail(email_sender, email_receiver, em.as_string())

补充说明

  • 应用专用密码获取:需先开启Google账号的两步验证,再在账号安全设置中生成对应SMTP服务的应用密码。
  • 确保SMTP服务可用:Gmail默认支持SMTP,若仍遇问题,可检查账号安全设置中相关权限(优先使用应用密码,而非开启“不太安全的应用访问”)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:25:31