📜  在 Flask-Mail 中使用 API 发送电子邮件

📅  最后修改于: 2022-05-13 01:55:51.305000             🧑  作者: Mango

在 Flask-Mail 中使用 API 发送电子邮件

Python是一种强大的语言,不需要任何外部库来导入,并提供了一个本地库来发送电子邮件-“SMTP 库”。 “smtplib”创建一个简单邮件传输协议客户端会话对象,用于将电子邮件发送到 Internet 上的任何有效电子邮件 ID。本文围绕着我们如何在 Flask 的帮助下向一群人发送批量定制的电子邮件。

安装 :

烧瓶邮件需要三个包才能工作,然后使用 pip 安装,

1)虚拟环境:

pip install virtualenv

2)烧瓶:

pip install Flask

3)烧瓶邮件:

pip install Flask-Mail

安装包后,我们必须使用virtualenv (可选)
1)创建一个虚拟环境
打开命令
转到您要用于项目的文件夹。
编写以下代码:

python3 -m venv env (macOS/Linux)
py -m venv env (Windows)

这里env是您的环境的名称。
2)激活环境
在窗户上

.\env\Scripts\activate

在 macOS/Linux 上

source env/bin/activate

3) 确保您在下面的图片中显示开头的 (env):

配置 Flask-Mail

Flask-Mail 通过标准的 Flask config API 进行配置。这些是可用的选项(每个都在文档后面解释):

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_SUPPRESS_SEND : 如果 app.testing 设置为 true,则发送被抑制
11) MAIL_MAX_EMAILS : 设置要发送的最大邮件

使用 Flask-Mail 发送电子邮件

Flask-Mail 中的类:
邮件类:管理电子邮件消息传递要求
消息类:封装电子邮件消息

让我们掌握代码。

# importing libraries
from flask import Flask
from flask_mail import Mail, Message
   
app = Flask(__name__)
mail = Mail(app) # instantiate the mail class
   
# configuration of mail
app.config['MAIL_SERVER']='smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = 'yourId@gmail.com'
app.config['MAIL_PASSWORD'] = '*****'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
mail = Mail(app)
   
# message object mapped to a particular URL ‘/’
@app.route("/")
def index():
   msg = Message(
                'Hello',
                sender ='yourId@gmail.com',
                recipients = ['receiver’sid@gmail.com']
               )
   msg.body = 'Hello Flask message sent from Flask-Mail'
   mail.send(msg)
   return 'Sent'
   
if __name__ == '__main__':
   app.run(debug = True)

将其保存在文件中,然后在Python Shell 或 CMD 中运行脚本并访问 http://localhost:5000/。