Flask Web开发 邮件功能之windows遇到的坑

来源:互联网 发布:盘古网络是电话销售吗 编辑:程序博客网 时间:2024/05/18 01:47

Flask Web开发 邮件功能之windows遇到的坑

windows开发真的很坑,一些环境变量设置了…大家都懂得

先来说一下关于环境问题

系统:windows

安装的是Anaconda,一键式安装

本文介绍如何使用Flask-Mail发送邮件。

Flask-Mail连接到简单邮件传输协议(SMTP)服务器,并把邮件交给这个服务器发送。

0.安装Flask-Mail

在Anaconda中安装,一条命令搞定

pip install flask-mail

1.Flask-Mail发送邮件

本实例是用163邮箱账户为例发送电子邮件的。

注意,163常用的收件,发件服务器的地址和端口是什么。

第一步:使用163邮箱,需要先登录客户端进行设置,点击设置>POP3/SMTP/IMAP

第二步:点击左侧客户端授权密码

进行相关操作开启客户端授权码

注意,这个客户端授权码是下文要用到的密码

以下是一个简单的代码:flask_email.py

# -*- coding:utf-8 -*-# Author: Roc-Jfrom flask import Flaskfrom flask_mail import Mail, Messageimport osapp = Flask(__name__)#下面是SMTP服务器配置app.config['MAIL_SERVER'] = 'smtp.163.com' #电子邮件服务器的主机名或IP地址app.config['MAIL_PORT'] = '465' #电子邮件服务器的端口app.config['MAIL_USE_TLS'] = False  #启用传输层安全app.config['MAIL_USE_SSL'] = Trueapp.config['MAIL_USERNAME'] = os.environ.get('MAIL_USERNAME') #邮件账户用户名app.config['MAIL_PASSWORD'] = os.environ.get('MAIL_PASSWORD') #邮件账户的密码mail = Mail(app)@app.route('/')def index():    msg = Message('主题', sender=app.config['MAIL_USERNAME'], recipients=['646481338@qq.com'])    msg.body = '文本 body'    msg.html = '<b>HTML</b> body'    mail.send(msg)    return '<h1>邮件发送成功</h1>'if __name__ == '__main__':    app.run()

上面的注释已经写得很明确了,其中邮件用户名和密码要存储到环境变量中,在windows下设置是很有意思的。

打开cmd到当前程序目录下,在命令行中输入

set MAIL_USERNAME=youremailset MAIL_PASSWORD=

注意,这里的密码是刚刚客户端设置的客户端授权码的密码,不是邮箱的密码。

注意,cmd设置环境变量不需要加引号,直接输入内容即可,并且要注意!注意!注意!这个设置是临时变量,因此不要关闭这个terminal,直接在下面运行该程序

在cmd中接着刚才那两条语句

python flask_email.py

就可以正确的运行了~
好了,虽然很简单,但是刚开始一直没有出来效果。

原创粉丝点击