这段时间一直在学习flask框架,看到flask扩展中有一个mail插件,所以今天就给大家演示如果发邮件。

首先我注册了一个163邮箱,需要开启smtp功能,因为咱们python发送邮件经过的是smtp.163.com(网易的电子邮件服务器)。

注册好163邮箱,然后开启smtp功能,如下图所示:

开启的过程中需要绑定手机。

我最终实现的样子是这样的:

使用flask搭建了一个web服务器,然后做了一个网页,将收件人,主题,正文填好之后,点击发送,上面会显示发送结果。

下面是整个工程的结构:

templates是存放了两个html文件,pyMail实现所有的功能。接下来我列一下源代码,然后将发送部分的核心代码进行讲解。

base.html:

{% extends "bootstrap/base.html" %}

{% block title %}Flasky {% endblock %}

{% block navbar %}

Toggle navigation

七夜

CSDN博客博客园公众号:qiye_python

{% endblock %}

{% block content %}

{% for message in get_flashed_messages() %}

×

{{ message }}

{% endfor %}

{% block page_content %}{% endblock %}

{% endblock %}

index.html:

{% extends "base.html" %}

{% import "bootstrap/wtf.html" as wtf %}

{% block title %}首页 {% endblock %}

{% block page_content %}

{% if name %}

Hello,{{ name }}!

{% else %}

Hello,Stranger!

{% endif %}

{{ wtf.quick_form(form) }}

{% endblock %}

pyMail.py:

#coding:utf-8

from flask import Flask,render_template,session,url_for,redirect,flash

from flask.ext.mail import Mail, Message

from flask.ext.moment import Moment

from flask.ext.wtf import Form

from flask.ext.bootstrap import Bootstrap

from wtforms import StringField,SubmitField, TextAreaField

from wtforms.validators import Required, Email

import sys

reload(sys)

sys.setdefaultencoding('utf8')#设置系统默认编码为utf-8

'''

这个类描述了网页上的结构

'''

class MailForm(Form):

receiver = StringField('收件人:',validators=[Required(),Email()])

style = StringField('主题:',validators=[Required()])

body = TextAreaField('正文:',validators=[Required()])

submit = SubmitField('发送')

app = Flask(__name__)

app.config['SECRET_KEY'] = 'qiyeboy'

#下面是SMTP服务器配置

app.config['MAIL_SERVER'] = 'smtp.163.com' #电子邮件服务器的主机名或IP地址

app.config['MAIL_PORT'] = '25' #电子邮件服务器的端口

app.config['MAIL_USE_TLS'] = True #启用传输层安全

app.config['MAIL_USERNAME'] ='xxxxxx@163.com' #os.environ.get('MAIL_USERNAME') #邮件账户用户名

app.config['MAIL_PASSWORD'] = 'your password'#os.environ.get('MAIL_PASSWORD') #邮件账户的密码

mail = Mail(app)

bootstrap = Bootstrap(app)#进行网页渲染

moment = Moment(app)#时间

@app.route('/',methods=['GET','POST'])

def index():

'''

flask中的路由

:return:

'''

mailForm = MailForm()#表单

if mailForm.validate_on_submit():#表单提交成功的判断

try:

receiverName = mailForm.receiver.data #收件人文本框的内容

styledata = mailForm.style.data#主题文本框的内容

bodydata = mailForm.body.data#正文文本框的内容

msg = Message(styledata,sender='xxxxxx@163.com',recipients=[receiverName])#发件人,收件人

msg.body = bodydata

mail.send(msg)

flash('邮件发送成功!')#提示信息

except:

flash('邮件发送失败!')

return render_template('index.html',form=mailForm,name ='xxxxxx@163.com' )#渲染网页

if __name__ == '__main__':

app.run(debug=True)

我将代码中我的邮箱和密码都隐藏了,如果大家要试验的话,请换成自己的邮箱和密码,记住这个密码不是登录密码,而是开启smtp时输入的管理密码。

mail核心代码:

1.首先配置smtp服务器:

#下面是SMTP服务器配置

app.config['MAIL_SERVER'] = 'smtp.163.com' #电子邮件服务器的主机名或IP地址

app.config['MAIL_PORT'] = '25' #电子邮件服务器的端口

app.config['MAIL_USE_TLS'] = True #启用传输层安全

app.config['MAIL_USERNAME'] ='xxxxxx@163.com' #os.environ.get('MAIL_USERNAME') #邮件账户用户名

app.config['MAIL_PASSWORD'] = 'xxxxxx'#os.environ.get('MAIL_PASSWORD') #邮件账户的密码

2.发送邮件:

msg = Message(styledata,sender='xxxxxx@163.com',recipients=[receiverName])#发件人,收件人

msg.body = bodydata

mail.send(msg)

填好发件人,收件人,主题,正文,然后发送就OK了。

最后给大家看一下发送的演示图:

这时候我的qq邮箱已经收到了邮件:

今天的分享就到这里,七夜音乐台的开发正在进行中,敬请期待,记得打赏呦。

欢迎大家支持我的公众号:

python判断邮件发送成功_(原创)python发送邮件相关推荐

  1. python判断邮件发送成功_【基本解决】python中用SMTP发送QQ邮件提示成功但是收件人收不到邮件...

    折腾: 期间, 已经用了smtp的ssl去发送邮件了,但是结果: 第二收件人也没有收到邮件... 那去把端口号从465改为587: smtpPort=587, 结果直接出错: smtpObj = sm ...

  2. python判断邮件发送成功_python发送邮件判断是否被打开

    这也是接着 上一篇 文章的那个面试题,不过判断邮件是否被打开是与使用什么语言无关的,只是一种解决思路. 判断邮件是否被打开,其实就要了解打开邮件的过程发生了什么.除了目前大部分邮箱提供的已读回执之外, ...

  3. python 发邮件 无需密码_用Python实现SMTP发送邮件(纯文本)

    写在前面 初学python,今天和昨晚折腾了一晚上,终于成功发送出了邮件!心情激动,做个记录总结. 首先,要实现发邮件总共需要用到email模块和smtplib模块,其中email模块用于构造邮件,s ...

  4. python判断是否回文_对python判断是否回文数的实例详解

    设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数.例如,若n=1234321,则称n为一回文数:但若n=1234567,则n不是回文数. 上面的解释就是说回文数和逆 ...

  5. python判断奇数和偶数_从Python中的给定列表中提取偶数和奇数

    python判断奇数和偶数 In this problem, we are given a list by the user which may be the mixture of even and ...

  6. python发邮件详解_用Python3发送邮件详解

    [整个邮件系统是怎样工作的] 邮件自互联网诞生之初就有了,它和web服务一样也是采用的c/s架构,比如我们常见的邮件客户端有outlook.foxmail这些邮件客户端软件. 当我们要发邮件时客户端就 ...

  7. python显示邮件发送成功失败_python stmp module 163邮箱发送邮件不成功

    问 题 http://blog.csdn.net/lucahan/... 我照着这个的教程试了下,就卡在connect服务器上,一直连不上,我上网没有问题. 求教是什么原因! 解决方案 因为这很多教程 ...

  8. python显示邮件发送成功失败_python 发送邮件总是失败

    最近部署了GSIL github敏感信息扫描 工具,扫描后无法发送邮件. GSIL项目地址:https://github.com/FeeiCN/GSIL 提示的错误信息如下: Traceback (m ...

  9. python判断题题库_《Python程序设计》判断题1-240题

    1.Python是一种跨平台.开源.免费的高级动态编程语言.(对) 2.Python 3.x完全兼容Python 2.x.(错) 3.Python 3.x和Python 2.x唯一的区别就是:prin ...

最新文章

  1. VTK:可视化算法之SingleSplat
  2. activemq网络桥接_ActiveMQ –经纪人网络解释
  3. 【百度】大型网站的HTTPS实践(一)——HTTPS协议和原理
  4. python基础版课件_python基础课件精编版.ppt
  5. OpenCV与图像处理学习十三——Harris角点检测(含代码)
  6. ideadebug热更新_Spring Boot 在IDEA中debug时的hot deployment(热部署)
  7. oracle数据库速度测试,ORACLE数据库测试数据插入速度
  8. 安装JDK与配置java环境变量
  9. 英文论文如何进行润色?
  10. Camera项目问题--第三方调用点击intent多次弹出问题
  11. 手写一个获取验证码的接口,超级简单
  12. 作为一个前端开发工程师,你会怼人吗?
  13. Element-ui 日期选择器切换类型(type)
  14. windows10桌面鼠标右键出现卡顿解决方法
  15. COLA开发流程总结
  16. RocketMQ的Quorum Write和自动降级
  17. 自动化测试:Monkey环境的搭建(windows)
  18. XML Publisher介绍
  19. 初学者的3d建模软件。是什么软件?
  20. android单手操作系统,生命不息,折腾不止:在 Android 上自制单手模式

热门文章

  1. 计算机的操作系统ppt,计算机基础及操作系统.ppt
  2. 金山词霸”屏幕取词技术揭密
  3. 抄小米策略,纽曼你成吗?
  4. file mask 是什么idea 配置file mask​html include
  5. 关于性开放引发的一些思考
  6. 赛门铁克linux安装教程,SEP14在linux下安装失败……
  7. 灰鸽子远控软件使用及xuetr查杀
  8. ★“伤不起”系列大全★
  9. 一键Pip下载安装使用YOLO系列目标检测算法,YOLOv7都能Pip ! ! !
  10. 产品管理之创新商业模式