python发送邮件
来源:互联网 发布:卡拉卓华软件 编辑:程序博客网 时间:2024/06/06 23:52
这段时间一直在学习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 %}<div class="navbar navbar-inverse" role="navigation"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="/">七夜</a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li><a href="http://blog.csdn.net/qiye_/">CSDN博客</a></li> <li><a href="http://www.cnblogs.com/qiyeboy/">博客园</a></li> <li><a href="/">公众号:qiye_python</a></li> </ul> </div> </div></div>{% endblock %}{% block content %}<div class="container">{% for message in get_flashed_messages() %}<div class="alert alert-warning"><button type="button" class="close" data-dismiss="alert">×</button>{{ message }}</div>{% endfor %}{% block page_content %}{% endblock %}</div>{% endblock %}
index.html:
{% extends "base.html" %}{% import "bootstrap/wtf.html" as wtf %}{% block title %}首页 {% endblock %}{% block page_content %}<div class="page-header">{% if name %}<h1> Hello,{{ name }}! </h1>{% else %}<h1>Hello,Stranger!</h1>{% endif %}</div>{{ wtf.quick_form(form) }}{% endblock %}pyMail.py:
#coding:utf-8from flask import Flask,render_template,session,url_for,redirect,flashfrom flask.ext.mail import Mail, Messagefrom flask.ext.moment import Momentfrom flask.ext.wtf import Formfrom flask.ext.bootstrap import Bootstrapfrom wtforms import StringField,SubmitField, TextAreaFieldfrom wtforms.validators import Required, Email import sysreload(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邮箱已经收到了邮件:
今天的分享就到这里,七夜音乐台的开发正在进行中,敬请期待,记得打赏呦。
欢迎大家支持我的公众号:
0 0
- 用Python发送邮件
- Python 发送邮件
- python 邮件发送
- 使用PYTHON发送邮件
- python邮件发送
- python发送邮件程序
- python: 发送邮件
- python发送邮件
- python smtp发送邮件
- python 发送邮件实例
- python发送各类邮件
- 用Python发送邮件
- 用Python发送邮件
- python 发送邮件实例
- Python发送邮件测试
- python发送邮件
- python发送邮件
- python发送邮件
- 腾讯视频面试总结
- RPi.GPIO 官方使用文档翻译
- 第一天 POJ 2739
- 贴片钽电容,P型 A型 B型 C型 D型 E型怎么区分?
- 银行家算法
- python发送邮件
- 三部排序
- 蓝桥杯 FJ的字符串
- 链队列的模板类实现
- 类学习一
- 科学界十大伟大算法
- 华为2015机试 最后一题 等式变换
- java异常
- 使用纯CSS3实现一个日食动画