python使用qq服务器发送邮件

直接上代码:

#!/usr/bin/python2.7
#-*- coding: UTF-8 -*-
# sendmail.py
#
# init created: 2016-04-21
# last updated: 2016-04-21
########################################################################
import smtplib
from email.mime.text import MIMEText
import traceback

class SmtpSendMail:
    def __init__(self, config):
        try:
            # 设置发件服务器地址, 如: "smtp.qq.com"
            self.host = config["host"]

            # 设置发件服务器端口号. 有SSL(465)和非SSL(25)两种形式
            self.port = config["port"]

            # 设置发件邮箱, 一定要自己注册的邮箱, 如: "cheungmine@qq.com"
            self.sender = config["sender"]

            # 设置发件邮箱的密码, 登陆会用到
            self.password = config["password"]

            # 设置超时秒
            self.timeout = config["timeout"]

            # SSL
            if not config.get("SSL"):
                self.SSL = False
            else:
                self.SSL = True

            # session
            if self.SSL:
                session = smtplib.SMTP_SSL(self.host, self.port, self.timeout)
            else:
                session = smtplib.SMTP(self.host, self.port, self.timeout)

            # 登陆邮箱
            session.login(self.sender, self.password)

            self.session = session
        except Exception, e:
            traceback.print_exc()
        pass

    def sendmail(self, mailto):
        result = False
        try:
            # 设置正文为符合邮件格式的HTML内容
            msg = MIMEText(mailto["body"], 'html')

            # 设置邮件标题
            msg['subject'] = mailto["title"]

            # 设置发送人
            msg['from'] = self.sender

            # 设置邮件接收人
            msg['to'] = mailto["receiver"]

            # 发送邮件
            self.session.sendmail(self.sender, mailto["receiver"], msg.as_string())
            result = True
        except Exception, e:
            traceback.print_exc()
        finally:
            return result
        pass

# test
mailfrom = {
    "host": "smtp.qq.com",
    "port": 465,
    "sender": "cheungmine@qq.com",
    "password": "xxxxx",
    "timeout": 30,
    "SSL": True
}

mailto = {
    "receiver": "350137278@qq.com",
    "title": "This is a test mail",
    "body": "<h1>Hi</h1><p>test mail from cheungmine</p>"
}

smtp = SmtpSendMail(mailfrom)
print smtp.sendmail(mailto)

python使用qq服务器发送邮件的更多相关文章

  1. Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError

    最新在学习Python的基础入门系列课程,今天学习到使用python 的内置库smtplib发送邮件内容. 使用Python发送邮件步骤简单: 创建SMTP连接 使用邮箱和密码登录SMTP服务器 创建 ...

  2. python使用smtplib库和smtp.qq.com邮件服务器发送邮件(转)

    使用qq的邮件服务器需要注意的两个地方主要是: 1.协议问题 使用465端口 SSL 协议 2.口令问题 出现SMTPAuthenticationError 主要的原因就是口令和帐号信息不对,这里我们 ...

  3. python使用smtplib库和smtp.qq.com邮件服务器发送邮件

    使用qq的邮件服务器需要注意的两个地方主要是: 1.协议问题 使用465端口 SSL 协议 2.口令问题 出现SMTPAuthenticationError 主要的原因就是口令和帐号信息不对,这里我们 ...

  4. python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件

    python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件 使用qq的邮件服务器需要注意的两个地方主要是: 1.协议问题 使用465端口 SSL 协议 2.口令问题 出现SMTPA ...

  5. 阿里云服务器发送邮件:Connection could not be established with host smtp.qq.com [Connection timed out #110]

    阿里云服务器发送邮件:Connection could not be established with host smtp.qq.com [Connection timed out #110] 一.总 ...

  6. python qq邮箱发送邮件

    使用qq发送邮件 # coding=utf8 """ qq邮箱发送邮件 """ import sys reload(sys) sys.set ...

  7. 杂项之使用qq邮箱发送邮件

    杂项之使用qq邮箱发送邮件 本节内容 特殊设置 测试代码 1. 特殊设置 之前QQ邮箱直接可以通过smtp协议发送邮件,不需要进行一些特殊的设置,但是最近使用QQ邮箱测试的时候发现以前使用的办法无法奏 ...

  8. Python中使用SMTP发送邮件以及POP收取邮件

    假设我们自己的电子邮件地址是from@163.com,对方的电子邮件地址是to@sina.com(这里的地址虚拟的),现在我们用Outlook或者Foxmail之类的软件写好邮件,填上对方的Email ...

  9. ASP.NET用QQ,网易发送邮件以及添加附件

    教程:ASP.NET用QQ,网易发送邮件以及添加附件 这是我用QQ邮箱出现的异常: 命令顺序不正确. 服务器响应为:Error: need EHLO and AUTH first !无法从传输连接中读 ...

随机推荐

  1. 【SYZOI Round1】滑稽的树

    Description zzsyz实验楼里面种了一棵滑稽树,只有滑稽之力达到大乘期的oier才能看到.虽然我们看不到,但是还是知道一些信息: 这真的是一棵树,由n个节点,n-1条边联通.一号滑稽果同时 ...

  2. bzoj4559[JLoi2016]成绩比较 容斥+拉格朗日插值法

    4559: [JLoi2016]成绩比较 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 261  Solved: 165[Submit][Status ...

  3. 安装MySQL后出现发生系统错误2或者系统找不到指定的文件

    就是出现如下图所示的情况: 上图中画横线的地方可以看出,sql服务确实安装了.出现这种情况的原因就是服务的默认目录与sql文件的安装目录不一致.这里我个人的MySQL安装路径为D:\mysql-5.7 ...

  4. C++ 中私有继承、保护继承与公有继承

    区别 下面通过一个示例来介绍三种继承的区别. 定义一个基类(假设为一个快退休的富豪): class RichMan { public: RichMan(); ~RichMan(); int m_com ...

  5. 第三次C语言作业

    (一)改错题 计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数. 输入输出样例1: Enterr x: 10.0 f(10.0) = 0.1 输入输出样例2: En ...

  6. 虚拟机搭建Zookeeper服务器集群完整笔记

    虚拟机搭建Zookeeper服务器集群完整笔记 本笔记主要记录自己搭建Zookeeper服务器的全过程,默认已经安装部署好Centos7. 一.虚拟机下Centos无法联网解决方案 1.首先调整虚拟机 ...

  7. Vue国际化处理 vue-i18n 以及项目自动切换中英文

    1. 环境搭建 命令进入项目目录,执行以下命令安装vue 国际化插件vue-i18n npm install vue-i18n --save 2. 项目增加国际化翻译文件 在项目的src下添加lang ...

  8. Cookie&Session(会话技术)

    一.Cookie技术 从打开一个游览器访问某个站点,到关闭这个游览器的整个过程成为一次会话 会话技术分为Cookie和Session Cookie:数据存储在客服端本地,减少对服务端的存储的压力,安全 ...

  9. MySQL 数学函数

    MySQL 数学函数 所有的数学函数在发生错误的情况下,均返回 NULL. -元减.改变参数的符号 mysql> SELECT - 2; -> -2 注意,如果这个操作符被用于一个 BIG ...

  10. PHP 包含

    PHP 包含文件 PHP include 和 require 语句 在 PHP 中,您可以在服务器执行 PHP 文件之前在该文件中插入一个文件的内容. include 和 require 语句用于在执 ...