Python使用163邮箱SMTP发送邮件 完整配置
Python通过网易163邮箱SMTP发邮件,配置smtp.163.com:465、开启SMTP服务、获取客户端授权码,附完整代码与535认证失败排查。
场景痛点
网易163邮箱用的人多,很多人拿它做自动化通知邮箱。但163邮箱同样不支持网页密码登录SMTP,必须在后台开SMTP服务、拿客户端授权码,而且163对群发更严格,配置不对就报535。这篇把完整步骤写清楚。
用到的库
# smtplib/email标准库,无需安装
完整代码
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 163邮箱SMTP配置
SMTP_SERVER = "smtp.163.com"
SMTP_SSL_PORT = 465
# 改成你自己的163邮箱
SENDER = "yourname@163.com"
# 163邮箱的"客户端授权密码",不是网页登录密码!
AUTH_CODE = "your_client_auth_password"
RECEIVER = "receiver@example.com"
def send_via_163():
msg = MIMEText("你好,这是通过163邮箱SMTP发出的测试邮件。", "plain", "utf-8")
msg["From"] = Header(f"我的163邮箱 <{SENDER}>", "utf-8")
msg["To"] = Header(RECEIVER, "utf-8")
msg["Subject"] = Header("163邮箱SMTP测试", "utf-8")
server = smtplib.SMTP_SSL(SMTP_SERVER, SMTP_SSL_PORT)
server.login(SENDER, AUTH_CODE)
server.sendmail(SENDER, [RECEIVER], msg.as_string())
server.quit()
print("163邮箱邮件发送成功")
if __name__ == "__main__":
send_via_163()
代码讲解
- 163邮箱SMTP服务器固定为
smtp.163.com,推荐端口465(SSL)。 - 163还有其他域名邮箱,服务器要跟着换:
xxx@163.com→smtp.163.comxxx@126.com→smtp.126.comxxx@yeah.net→smtp.yeah.net- 授权码怎么拿: 1. 登录163邮箱网页版,点顶部"设置"→"POP3/SMTP/IMAP"。 2. 开启"SMTP服务",按提示绑定手机发短信验证。 3. 验证后会生成一串客户端授权密码,复制下来填到代码。
- 163的授权码长度比QQ邮箱长,大小写敏感,别复制错。
运行结果
控制台打印"163邮箱邮件发送成功",收件人邮箱收到来自你的163邮箱的邮件。
注意事项
- 163邮箱对发信频率管控比QQ更严,短时间发几十封就可能临时限制,群发建议每封间隔1秒以上。
- 163免费邮箱每天发信上限约200封,超过会被冻结SMTP服务一段时间。
- 报
535 Error: authentication failed基本就是授权码错了或者SMTP服务没开启。 - 163邮箱发出去的邮件进对方垃圾箱概率不低,建议在正文里写清楚发件人身份、别用全大写主题、别放一堆链接。
- 126、yeah.net的代码完全一样,只改SMTP_SERVER和发件人地址即可。

更新时间:2026-09-14 21:14:33
上一篇:Python批量删除垃圾邮件 imaplib清理收件箱