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采集腾讯新闻实例
Jul 10 Python
Python魔术方法详解
Feb 14 Python
python+pandas生成指定日期和重采样的方法
Apr 11 Python
pip安装时ReadTimeoutError的解决方法
Jun 12 Python
python实现播放音频和录音功能示例代码
Dec 30 Python
深入了解和应用Python 装饰器 @decorator
Apr 02 Python
python 基于TCP协议的套接字编程详解
Jun 29 Python
使用Python opencv实现视频与图片的相互转换
Jul 08 Python
Pytorch实现GoogLeNet的方法
Aug 18 Python
python IDLE添加行号显示教程
Apr 25 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
Dec 24 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
跟我学小偷程序之成功偷取首页(第三天)
2006/10/09 PHP
php的计数器程序
2006/10/09 PHP
我的论坛源代码(六)
2006/10/09 PHP
php中用数组的方法设置cookies
2011/04/21 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
2014/10/20 PHP
php实现无限级分类查询(递归、非递归)
2016/03/10 PHP
Symfony控制层深入详解
2016/03/17 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
2019/07/18 PHP
jquery中常用的SET和GET
2009/01/13 Javascript
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
bootstrap侧边栏圆点导航
2017/01/11 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
Babel 入门教程学习笔记
2018/06/13 Javascript
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
2019/07/10 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
如何利用python查找电脑文件
2018/04/27 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
Python HTMLTestRunner库安装过程解析
2020/05/25 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
如何快速理解python的垃圾回收机制
2020/09/01 Python
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
质检员的岗位职责
2013/11/15 职场文书
计算机专业毕业生求职信分享
2013/12/24 职场文书
怀念母亲教学反思
2014/04/28 职场文书
广播节目策划方案
2014/05/23 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书