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中处理unchecked未捕获异常实例
Jan 17 Python
python使用matplotlib绘制折线图教程
Feb 08 Python
python内置函数:lambda、map、filter简单介绍
Nov 16 Python
python Flask 装饰器顺序问题解决
Aug 08 Python
Python实现的KMeans聚类算法实例分析
Dec 29 Python
Python之循环结构
Jan 15 Python
pytorch如何冻结某层参数的实现
Jan 10 Python
python 爬取疫情数据的源码
Feb 09 Python
django自带的权限管理Permission用法说明
May 13 Python
Python爬虫入门有哪些基础知识点
Jun 02 Python
python db类用法说明
Jul 07 Python
详解Python如何批量采集京东商品数据流程
Jan 22 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
十天学会php之第一天
2006/10/09 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
Php中使用Select 查询语句的实例
2014/02/19 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
2016/09/23 PHP
yii2 url重写并隐藏index.php方法
2018/12/10 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
2012/05/23 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
Python库urllib与urllib2主要区别分析
2014/07/13 Python
Django发送html邮件的方法
2015/05/26 Python
python 实现判断ip连通性的方法总结
2018/04/22 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
python tkinter窗口最大化的实现
2019/07/15 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
向全球直邮输送天然健康产品:iHerb.com
2020/05/03 全球购物
质量工程师岗位职责
2013/11/16 职场文书
初中毕业生的自我评价
2014/03/03 职场文书
教室标语大全
2014/06/21 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
个人总结与自我评价
2015/02/14 职场文书
总经理岗位职责范本
2015/04/01 职场文书
讲座通知范文
2015/04/23 职场文书
师德承诺书2015
2015/04/28 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS
Redis唯一ID生成器的实现
2022/07/07 Redis