Python发送邮件功能示例【使用QQ邮箱】


Posted in Python onDecember 04, 2018

本文实例讲述了Python发送邮件功能。分享给大家供大家参考,具体如下:

这里以QQ邮箱为例说明

登录邮箱点账号

Python发送邮件功能示例【使用QQ邮箱】

开启smtp

Python发送邮件功能示例【使用QQ邮箱】

开启时会要求你发送一条短信,发送完成后点已发送。

就有授权码了

Python发送邮件功能示例【使用QQ邮箱】

代码如下,只需更改发件人、收件人等信息即可

# encoding: utf-8
import logging
import smtplib
from email.mime.text import MIMEText
import email.utils
from datetime import datetime
_logger = logging.getLogger('utils.mailclient')
class MailClient(object):
  def __init__(self, host, port, user, pwd=''):
    self._host = host
    self._port = port
    self._user = user
    self._pwd = pwd
    self._smtp_server = None
    self._debug = False
    self._keepalive = True
  def set_keepalive(self, keepalive):
    self._keepalive = keepalive
  def set_debug(self, debug):
    self._debug = debug
    if self._smtp_server is not None:
      self._smtp_server.set_debuglevel(self._debug)
  def _connect(self):
    if self._smtp_server is None:
      _smtp_server = smtplib.SMTP(self._host, self._port)
      _smtp_server.ehlo()
      _smtp_server.starttls()
      _smtp_server.set_debuglevel(self._debug)
      if self._pwd:
        _smtp_server.login(self._user, self._pwd)
      self._smtp_server = _smtp_server
    return self._smtp_server
  def _dispose(self):
    if self._smtp_server is not None:
      self._smtp_server.quit()
      self._smtp_server = None
  def send(self, to_addrs, subject, content, isdispose=True):
    _smtp_server = self._connect()
    if not isinstance(to_addrs, list):
      to_addrs = [to_addrs]
    _msg = MIMEText(content, 'html', 'utf-8')
    _msg['Subject'] = subject
    _msg['From'] = self._user
    _msg['To'] = '; '.join(to_addrs)
    _msg['Date'] = datetime.now().strftime('%Y-%d-%m %H:%M:%S')
    _smtp_server.sendmail(self._user, to_addrs, _msg.as_string())
    isdispose and (not self._keepalive) and self._dispose()
  def send_mails(self, mails):
    _smtp_server = self._connect()
    for mail in mails:
      self._send_mail(mail.get('to'), mail.get('subject'), mail.get('content'), False)
    (not self._keepalive) and self._dispose()
  def close(self):
    self._dispose()
if __name__ == '__main__':
  logging.basicConfig(level=logging.DEBUG,
            format='%(asctime)s %(name)s %(levelname)s:%(message)s',
            datefmt='%Y-%m-%d %H:%M:%S')
  import time
  s = MailClient('smtp.qq.com', 587, '10010@qq.com', '授权码') #  注意,此处端口要用587,465端口是ssl使用的。
  s.set_keepalive(False)
  s.set_debug(True)
  st = time.time()
  s.send('收信人邮箱地址', '测试', '测试邮件 From QQ') #要发送的账号、标题、内容
  print(time.time() - st)

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python搭建虚拟环境的步骤详解
Sep 27 Python
详解python开发环境搭建
Dec 16 Python
python实现协同过滤推荐算法完整代码示例
Dec 15 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
Apr 18 Python
用于业余项目的8个优秀Python库
Sep 21 Python
Pycharm 2019 破解激活方法图文详解
Oct 11 Python
Python获取二维数组的行列数的2种方法
Feb 11 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
Jun 03 Python
详解Python中的路径问题
Sep 02 Python
浅析Python的命名空间与作用域
Nov 25 Python
使用pandas实现筛选出指定列值所对应的行
Dec 13 Python
Python 居然可以在 Excel 中画画你知道吗
Feb 15 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 #Python
uwsgi+nginx部署Django项目操作示例
Dec 04 #Python
解决python中无法自动补全代码的问题
Dec 04 #Python
Django框架实现的简单分页功能示例
Dec 04 #Python
Django开发的简易留言板案例详解
Dec 04 #Python
对python的bytes类型数据split分割切片方法
Dec 04 #Python
Python 从相对路径下import的方法
Dec 04 #Python
You might like
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
PHP缓存技术的多种方法小结
2012/08/14 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
2013/09/28 PHP
smarty中改进truncate使其支持中文的方法
2016/05/30 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
JavaScript的parseInt 进制问题
2009/05/07 Javascript
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
javascript实现网页字符定位的方法
2015/07/14 Javascript
基于jquery实现的仿优酷图片轮播特效代码
2016/01/13 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
python实现log日志的示例代码
2018/04/28 Python
django允许外部访问的实例讲解
2018/05/14 Python
python中sys.argv函数精简概括
2018/07/08 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
Python自动化操作实现图例绘制
2020/07/09 Python
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
党校学习自我鉴定
2014/02/24 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
小学开学典礼主持词
2014/03/19 职场文书
合理化建议书
2015/02/04 职场文书
离婚纠纷代理词
2015/05/23 职场文书
终止合同协议书范本
2016/03/22 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python
Python字符串常规操作小结
2022/04/03 Python
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server