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 相关文章推荐
pygame播放音乐的方法
May 19 Python
在Python中用has_key()方法查找键是否存在的教程
May 21 Python
使用Python操作MySQL的一些基本方法
Aug 16 Python
基于Python代码编辑器的选用(详解)
Sep 13 Python
python发送邮件脚本
May 22 Python
儿童python练习实例
May 27 Python
对python 树状嵌套结构的实现思路详解
Aug 09 Python
python boto和boto3操作bucket的示例
Oct 30 Python
PyChon中关于Jekins的详细安装(推荐)
Dec 28 Python
Django展示可视化图表的多种方式
Apr 08 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 Python
Python Django获取URL中的数据详解
Nov 01 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 has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
php木马webshell扫描器代码
2012/01/25 PHP
PHP迭代器的内部执行过程详解
2013/11/12 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
图片按比例缩放函数
2006/06/26 Javascript
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
AngularJS 与百度地图的结合实例
2016/10/20 Javascript
Bootstrap CSS组件之输入框组
2016/12/17 Javascript
js获取一组日期中最近连续的天数
2017/05/25 Javascript
详解React 16 中的异常处理
2017/07/28 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
2019/09/26 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
2020/04/09 Javascript
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
python装饰器的特性原理详解
2019/12/25 Python
python collections模块的使用
2020/10/16 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
Lenox官网:精美的瓷器&独特的礼品
2017/02/12 全球购物
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
SCDKey德国:全球领先的数字游戏市场
2019/04/09 全球购物
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
应聘教师求职信
2014/07/19 职场文书
运动员代表致辞
2015/07/29 职场文书
python实现自动化群控的步骤
2021/04/11 Python
Python中for后接else的语法使用
2021/05/18 Python
vue实力踩坑之push当前页无效
2022/04/10 Vue.js
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang