python3实现163邮箱SMTP发送邮件


Posted in Python onMay 22, 2018

SMTP协议

首先了解SMTP(简单邮件传输协议),邮件传送代理程序使用SMTP协议来发送电邮到接收者的邮件服务器。SMTP协议只能用来发送邮件,不能用来接收邮件,而大多数的邮件发送服务器都是使用SMTP协议。SMTP协议的默认TCP端口号是25。

发送邮件之前的配置:

上面说了是使用SMTP协议发送的邮件,所以需要先查看你的发件人邮箱是否有开启SMTP协议,如没有,则需要开启,我测试使用的是163.com的邮箱作为发信人邮箱,在设置中开启SMTP协议如下图所示。

python3实现163邮箱SMTP发送邮件

  测试的前提是你需要开通客户端授权,开通后会让你设置密码,那个密码要记好,下面的passwd接收的是授权密码而不是邮箱密码!否则会出现下图所示的错误提示:

python3实现163邮箱SMTP发送邮件

小栗子:

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 相关文章推荐
python 实现归并排序算法
Jun 05 Python
Python 多线程抓取图片效率对比
Feb 27 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 Python
插入排序_Python与PHP的实现版(推荐)
May 11 Python
详解tensorflow载入数据的三种方式
Apr 24 Python
pandas重新生成索引的方法
Nov 06 Python
python3获取当前目录的实现方法
Jul 29 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
Jan 03 Python
Python几种常见算法汇总
Jun 02 Python
利用Python将多张图片合成视频的实现
Nov 23 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
Jan 08 Python
Python实现一个论文下载器的过程
Jan 18 Python
django请求返回不同的类型图片json,xml,html的实例
May 22 #Python
Django使用HttpResponse返回图片并显示的方法
May 22 #Python
python实现最长公共子序列
May 22 #Python
使用python存储网页上的图片实例
May 22 #Python
python3模块smtplib实现发送邮件功能
May 22 #Python
Python3.x爬虫下载网页图片的实例讲解
May 22 #Python
python3使用smtplib实现发送邮件功能
May 22 #Python
You might like
PHP环境搭建最新方法
2006/09/05 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
2014/04/29 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
Python基础语法(Python基础知识点)
2016/02/28 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
python psutil模块使用方法解析
2019/08/01 Python
Python 如何实现访问者模式
2020/07/28 Python
Python如何读写CSV文件
2020/08/13 Python
django跳转页面传参的实现
2020/09/17 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
会计专业推荐信
2013/10/29 职场文书
留学生求职信
2014/06/03 职场文书
应聘教师自荐书
2014/06/16 职场文书
2014年班主任工作总结
2014/11/08 职场文书
先进班集体事迹材料
2014/12/25 职场文书
继承公证书格式
2015/01/26 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
Python OpenCV 图像平移的实现示例
2021/06/04 Python
PHP设计模式(观察者模式)
2021/07/07 PHP
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技