如何使用Python从Gmail委托账户发送邮件?
从Gmail委托账户发送邮件的Python解决方案
前提准备
- 确保主Gmail账户已获得委托账户的发送权限(在Gmail网页端完成设置:设置→账户和导入→发送邮件为→添加另一个邮箱地址,完成验证流程)
- 主账户需配置合法登录凭据:
- 若开启2FA,必须使用App密码(在Google账户设置中生成)
- 未开启2FA时,可临时开启"允许低安全性应用访问"(不推荐长期使用,建议优先启用2FA+App密码)
核心实现代码(smtplib版本)
关键是在邮件头和发送方法中明确指定委托账户作为发件人,登录仍使用主账户凭据:
import smtplib from email.mime.text import MIMEText # 配置参数 main_account = "主账户邮箱@gmail.com" main_auth = "主账户密码/App密码" # 2FA用户填App密码 delegate_account = "委托账户邮箱@gmail.com" recipient = "收件人邮箱@xxx.com" subject = "测试委托账户发件" content = "这是通过Python从Gmail委托账户发出的测试邮件" # 构建邮件对象 msg = MIMEText(content, 'plain', 'utf-8') msg['From'] = delegate_account # 强制指定发件人为委托账户 msg['To'] = recipient msg['Subject'] = subject # 发送邮件 try: with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp_server: smtp_server.login(main_account, main_auth) # 第一个参数必须填委托账户,和邮件头保持一致 smtp_server.sendmail(delegate_account, recipient, msg.as_string()) print("邮件发送成功") except Exception as e: print(f"发送失败:{str(e)}")
关键注意点
msg['From']和sendmail()的第一个参数必须同时设置为委托账户地址,缺一不可- 委托账户的"发送邮件为"设置中,必须完成主账户的权限验证(通常添加时会发送验证邮件到委托账户,需点击确认)
- 若遇到SMTP登录失败,优先检查App密码是否正确,或低安全性应用访问是否开启
内容的提问来源于stack exchange,提问作者Radhika Motwani
相关产品推荐
相关产品推荐

