前言
女友:我闺蜜让我给他发邮件,每半小时给他发一次,任务交给你了昂,发“宝贝加油哦”,别忘了昂
我:我T…太荣幸了,包在我身上┭┮﹏┭┮。
真每隔半小时给她编辑一次啊,怎么会,这么麻烦!来上代码!!
代码详解
先安好配置,用到Flask的Mail模块,以及time模块
pip install Flask-Mail
然后,嘿嘿,通过设置以下应用程序参数的值来配置Flask-Mail
序号1 | 参数 |
---|---|
1 | MAIL_SERVER 电子邮件服务器的名称/IP地址 |
2 | MAIL_PORT 使用的服务器的端口号 |
3 | MAIL_USE_TLS 启用/禁用传输安全层加密 |
4 | MAIL_USE_SSL 启用/禁用安全套接字层加密 |
5 | MAIL_DEBUG 调试支持。默认值是Flask应用程序的调试状态 |
6 | MAIL_USERNAME 发件人的用户名 |
7 | MAIL_PASSWORD 发件人的密码 |
8 | MAIL_ASCII_ATTACHMENTS 如果设置为true,则附加的文件名将转换为ASCII |
9 | MAIL_DEFAULT_SENDER 默认发件人 |
10 | MAIL_MAX_EMAILS 设置要发送的最大邮件数 |
11 | MAIL_SUPPRESS_SEND 如果app.testing设置为true,则发送被抑制 |
够多吧,不用死记硬背,啥时用啥时候看看就好
这是发信服务器
我以我的qq为例
app.config['MAIL_SERVER']='smtp.qq.com'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USERNAME'] = '你的qq号@qq.com'
app.config['MAIL_PASSWORD'] = 'amtfuahaigrabeja'#这是授权码
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USE_SSL'] = False
二者选一
加密方式 | value |
---|---|
SSL/TLS加密 | MAIL_USE_SSL = True MAIL_PORT = 465 |
STARTTLS加密 | MAIL_USE_TLS = True MAIL_PORT = 587 |
等等,授权码怎么获得,你不知道!(那先看第二模块整上)
然后Flask初始化
app = Flask(__name__,template_folder='./')
mail=Mail(app)
接下来编写具体函数,先等待五秒试试么
@app.route('/for')
def for_message():
time.sleep(5)
return redirect(url_for('index'))
@app.route('/')
def index():
msg = Message('Hello', sender = '你的qq号@qq.com', recipients = ['对方的qq号@qq.com'])
msg.body = "miss you. This is a robot send the email"
mail.send(msg)
print("发送成功")
return redirect(url_for('for_message'))
成功!!齐活交工
获取授权码
在这设置——>账户
开启,获得授权码
全部代码
from flask_mail import Mail, Message
from flask import Flask,redirect,url_for
import time
app = Flask(__name__,template_folder='./')
mail=Mail(app)
app.config['MAIL_SERVER']='smtp.qq.com'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USERNAME'] = '1052090206@qq.com'
app.config['MAIL_PASSWORD'] = 'amtfuahaigrabeja'#fedsusechyvybehc
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USE_SSL'] = False
@app.route('/for')
def for_message():
time.sleep(5)
return redirect(url_for('index'))
@app.route('/')
def index():
msg = Message('Hello', sender = '1052090206@qq.com', recipients = ['383386765@qq.com'])
msg.body = "miss you. This is a robot send the email"
mail.send(msg)
print("发送成功")
return redirect(url_for('for_message'))
if __name__ == '__main__':
app.run(host='127.0.0.1',port=8000)
有用的话记得给俺点个赞
仅用于学习分享,请勿用于其他用途!!!