Flask 发送邮件

一、什么是POP3、SMTP和IMAP?

POP3、SMTP和IMAP

二、开启邮箱的SMTP服务

以常用的网易邮箱为例(其他同理):登录后进入常规设置

  1. 选择POP3/SMTP/IMAP:开启如下两条服务,并注意到这里提示使用的是授权码登录第三方客户端,而非邮箱密码(有些邮箱使用的是密码而非授权码)
  2. 页面的最下方还有一个提示内容如下,这个也会在后面用到,有两个重要信息:
  • SMTP的服务器:smtp.163.com
  • 安全支持:POP3/SMTP/IMAP服务是全部支持SSL连接的
  1. 设置中选择 客户端授权密码 这一栏并选择开启,并记住这个授权码,开启后如下:
  2. 网易邮箱的相关服务器信息:

三、Python Flask框架发送邮件

  1. 安装依赖包:flask_mail
pip install flask_mail
  1. 这里假设一种情况,比如一般在注册一个网站时,会给用户发送验证邮件,这时我们用浏览器访问这个接口(http://localhost:5000/register)时就会发送对应的邮件到用户邮箱(当然省略了很多如生成验证码等内容)。
from flask import Flask
from flask_mail import Mail, Message

app = Flask(__name__)
class Config(object):
    DEBUG = True
    MAIL_SERVER = 'smtp.163.com' # 邮件服务器地址
    MAIL_PORT = '465' # SSL协议端口号
    MAIL_USE_SSL = True # 使用SSL加密
    MAIL_USERNAME = '[email protected]' # 邮箱
    MAIL_PASSWORD = 'xxxxxxxx' # 授权码(某些邮箱是直接使用密码)
app.config.from_object(Config)

mail = Mail(app)

@app.route('/register', strict_slashes = False)
def register():
    msg = Message('填写邮件标题', sender='[email protected]', recipients=['[email protected]', '[email protected]'])
    msg.body = '邮件内容'
    mail.send(msg)
    return '邮件发送成功!'

if __name__ == '__main__':
    app.run(host = '0.0.0.0',port = 5000)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章