Python之qq邮件
用python发送电子邮件验证这个功能,可以说花费了我很久时间,这也是为什么我重头敲了之前的两遍代码。不要说我傻,仅仅是笨了一点而已 ^.- 。
之前我所参考是如何发送 GMail. 但是我并不想这么干,谁叫天朝居然把goole都给墙了.....$.$,虽然我有VPN,但是,我还是好好忍住了。
我用的是flask-email:
其中对邮箱的一些配置信息:
MAIL_SERVER = "smtp.qq.com"
MAIL_PORT = 25
# MAIL_USE_TLS = True
# MAIL_USE_SSL = True
MAIL_USERNAME = '1164258202@qq.com'
MAIL_PASSWORD = 'password'
看到配置中你会发现我有两个地方注释了:
Q:那么这个TLS和SSL是干什么的?
A:其实小C也不知道啦,主要用于web的安全传输协议,基本原理:先非对称加密传递对称加密所要用的钥匙,然后双方用该钥匙对称加密和解密往来的数据。百度到这个,还有这个,你就会know more了。
反正当我开启SSL的时候,我的邮件就发送失败:
SSLError: [Errno 1] _ssl.c:507: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
说不知道这个协议。好把,那我只能把你给关了。但支持TLS协议,你可以开启它
MAIL_PASSWORD = 'password' // 对于这个我当时也是不解。为什么密码不是qq邮箱的密码,而是这个:

就是上面这个二货了。 but,你要设置这个密码,前提你要在邮箱中开启这个POP3/SMTP服务

然后就是发送你的邮件操作了。
from threading import Thread
from flask import current_app, render_template
from flask.ext.mail import Message
from . import mail
def send_async_email(app, msg):
with app.app_context():
mail.send(msg) def send_email(to, subject, template, **kwargs):
app = current_app._get_current_object()
msg = Message(app.config['FLASKY_MAIL_SUBJECT_PREFIX'] + ' ' + subject,
sender=app.config['FLASKY_MAIL_SENDER'], recipients=[to])
msg.body = render_template(template + '.txt', **kwargs)
msg.html = render_template(template + '.html', **kwargs)
thr = Thread(target=send_async_email, args=[app, msg])
thr.start()
return thr
最后就是发邮件操作了:
send_email(current_user.email,'Confirm Your Account', 'auth/email/confirm',user= current_user,token = token)
当然还有些细节我就不在这里说了,我卡住的地方就是邮件的相关配置问题,毕竟我是小C(python 业余爱好者),哈哈。
Python之qq邮件的更多相关文章
- python发QQ邮件
python发qq邮件相对比较简单,网上教程一大把:固定套路,后面封装看自己怎么方便可以怎样进行封装:原版代码如下: """ # -*- coding : utf-8 - ...
- python 发送QQ邮件的小例子
首先QQ邮件用第三方客户端发送要申请验证码.而不是QQ的密码. 授权码就是你接下来登录要使用的密码 那么剩下的工作就很简单了.附简单代码如下: #coding:utf-8 import smtplib ...
- 使用python发送QQ邮件
这里用到了Python的两个包来发送邮件: smtplib 和 email . Python 的 email 模块里包含了许多实用的邮件格式设置函数,可以用来创建邮件“包裹”.使用的 MIMEText ...
- 九、Python发送QQ邮件(SMTP)
看了廖雪峰老师的教程: 一封电子邮件的旅程就是 发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人 ...
- Python发送QQ邮件
#!/usr/bin/python # -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText fro ...
- python 发qq邮件
import smtplibfrom email.mime.text import MIMETextmsg_from = '979477675@qq.com' # 发送方邮箱passwd = 'irg ...
- python派QQ邮件
#encoding=utf-8 __author__ = 'ds' #文件名冲突 from email.mime.text import MIMEText import smtplib if __na ...
- 用python发送qq邮件
一.需要开启smtp服务,获取授权密码. 在qq邮箱的设置里开启smtp 二.代码 # -*- coding:utf-8 -*- import smtplib from email.mime.text ...
- python定时利用QQ邮件发送天气预报
大致介绍 好久没有写博客了,正好今天有时间把前几天写的利用python定时发送QQ邮件记录一下 1.首先利用request库去请求数据,天气预报使用的是和风天气的API(www.heweather.c ...
随机推荐
- 06jQuery-04-DOM操作
jQuery既然是为了帮助你能从js的繁琐中解脱出来,自然在DOM操作上也有自己的一套. 1.修改Text和HTML 之前我们提到过,如果用JS的话,你要修改Text或者HTML需要用到其innerH ...
- MyBatis的俩种事务管理器的类型
JDBC – 这个配置直接简单使用了 JDBC 的提交和回滚设置. 它依赖于从数据源得 到的连接来管理事务范围. MANAGED从来不回滚或提交一个连接而它会让 容器来管理事务的整个生命周期(比如 S ...
- oracle存储过程中is和as区别
在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别:在视图(VIEW)中只能用AS不能用IS:在游标(CURSOR)中只能用IS不能用AS.
- 一步一步带你做WebApi迁移ASP.NET Core2.0
随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的ASP.NET WebApi站点,就可以跨平台运行在Linux中.我们有必要先说一下ASP.NET Core. ASP ...
- jenkins~集群分发功能的具体实现
前一讲主要说了jenkins分发的好处<jenkins~集群分发功能和职责处理>,它可以让具体的节点干自己具体的事,比如windows环境下的节点,它只负责编译,发布windows的生态环 ...
- 批处理之 for/f 详解
含有/F的for格式:FOR /F ["options"] %%i IN (file) DO command FOR /F ["options"] %%i IN ...
- #云栖大会# 移动安全专场——APP加固新方向(演讲速记)
主持人导语: 近些年来,移动APP数量呈现爆炸式的增长,黑产也从原来的PC端转移到了移动端,伴随而来的逆向攻击手段也越来越高明.在解决加固产品容易被脱壳的方案中,代码混淆技术是对抗逆向攻击最有效的方式 ...
- Java 继承、抽象、接口
一.继承 1. 概述 继承是面向对象的重要特征之一,当多个类中存在相同的属性和行为时,将这些内容抽取到单独一个类中,那多个类中无需再定义这些属性和行为,只需继承那个单独的类即可. 单独的类称为父类或超 ...
- c# 多线程传递参数以及任务
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Echarts数据可视化series-map地图,开发全解+完美注释
全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...