Python3 使用 163 邮箱 SMTP 协议发送邮件教程

向北走
向北走
发布时间:2026-10-13 | 2人浏览过
原创

本文详细介绍如何使用 Python3 通过 SMTP 协议向 163 邮箱发送电子邮件。重点讲解了开启 SMTP 服务及获取客户端授权密码的配置步骤,提供了基于 smtplib 和 email 模块的完整代码示例,并说明了 SSL 加密端口 465 的使用方法及常见报错排查建议。

SMTP协议

首先需要了解 SMTP(简单邮件传输协议)。邮件传送代理程序利用 SMTP 协议将电子邮件发送至接收者的邮件服务器。需要注意的是,SMTP 协议仅用于发送邮件,不支持接收邮件,目前大多数邮件发送服务器均基于此协议运行。该协议默认使用的 TCP 端口号为 25。

发送邮件前的配置

既然采用 SMTP 协议发送邮件,必须先确认发件人邮箱是否已开启 SMTP 服务。若未开启,需手动启用。本文以 163.com 邮箱作为发件人进行测试,具体开启方式可在邮箱设置中找到,如下图所示。

测试的前提是必须开通客户端授权功能。开通后系统会要求设置一个专用密码,请务必妥善保管该密码。后续代码中的 passwd 参数接收的是此授权密码,而非邮箱登录密码。若混淆两者,将出现如下图所示的错误提示。

示例代码

import smtplib 
from email.header import Header 
from email.mime.text import MIMEText 
 
# 第三方 SMTP 服务 
mail_host = "smtp.163.com" # SMTP服务器 
mail_user = "***"   # 用户名 
mail_pass = "***"  # 授权密码,非登录密码 
 
sender = ***@163.com' # 发件人邮箱(最好写全, 不然会失败) 
receivers = [***@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 
 
content = '我用Python' 
title = '人生苦短' # 邮件主题 
 
def sendEmail(): 
 
 message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码 
 message['From'] = "{}".format(sender) 
 message['To'] = ",".join(receivers) 
 message['Subject'] = title 
 
 try: 
 smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启用SSL发信, 端口一般是465 
 smtpObj.login(mail_user, mail_pass) # 登录验证 
 smtpObj.sendmail(sender, receivers, message.as_string()) # 发送 
 print("mail has been send successfully.") 
 except smtplib.SMTPException as e: 
 print(e) 
 
def send_email2(SMTP_host, from_account, from_passwd, to_account, subject, content): 
 email_client = smtplib.SMTP(SMTP_host) 
 email_client.login(from_account, from_passwd) 
 # create msg 
 msg = MIMEText(content, 'plain', 'utf-8') 
 msg['Subject'] = Header(subject, 'utf-8') # subject 
 msg['From'] = from_account 
 msg['To'] = to_account 
 email_client.sendmail(from_account, to_account, msg.as_string()) 
 
 email_client.quit() 
 
if __name__ == '__main__': 
 sendEmail() 
 # receiver = '***' 
 # send_email2(mail_host, mail_user, mail_pass, receiver, title, content) 

如果在测试过程中遇到报错,请参考网易邮箱官方提供的状态码及其含义进行排查。

菜鸟教程网站也提供了相关的详细教程供参考。

本文内容参考了孙华强的博客文章,在此表示衷心感谢。

以上就是本文的全部内容,希望对各位的学习有所帮助,也欢迎大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表