介绍
最近有人问我如何使用 flask 和 Python 发送电子邮件,所以我想我也分享一下我是如何做到的,希望它能帮助到你。
设置开发环境
首先我们需要设置开发环境,这可以通过以下命令完成:
python3 -m venv env
source env/bin/activate
安装依赖项
接下来我们需要安装依赖项,创建一个名为“requirements.txt”的文件并添加以下内容:
flask
要安装依赖项,请运行以下命令:
pip install -r requirements.txt
接下来我们就可以真正开始写代码了。
编辑代码
打开一个名为 main.py 的文件并添加以下 import:
from flask import Flask, request
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
接下来我们需要初始化 flask 应用程序,这可以通过以下行来完成:
app = Flask(__name__)
应用程序初始化后,我们需要定义一个包含三个参数的路由:发送地址、邮件主题和邮件正文。
这可以通过以下方式完成:
@app.route("/send", methods=["POST"])
def send():
email_address = request.form['address']
email_subject = request.form['subject']
email_message = request.form['message']
sender_email = 'youremail'
sender_password = 'your password'
receiver_email = email_address
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = receiver_email
message['Subject'] = email_subject
message.attach(MIMEText(email_message, 'plain'))
try:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(sender_email, sender_password)
server.sendmail(sender_email, receiver_email, message.as_string())
server.quit()
return 'Email Sent!'
except Exception as e:
return str(e)
该函数使用三个参数并使用 gmail 帐户发送邮件,请确保将变量替换为您自己的变量。
最后我们只需要初始化主函数:
if __name__ == "__main__":
app.run(debug=True)
运行邮件服务
python3 main.py
接下来你可以使用以下 curl 命令测试服务:
curl --location --request POST 'localhost:5000/send' \
--form 'address=example@gmail.com' \
--form 'subject=Test email' \
--form 'message=Hello, this is a test email sent using curl and Flask!'
运行上述命令后(不要忘记更改地址),您应该会在收件箱中看到邮件。
此示例的源代码[1]
引用链接
[1] 此示例的源代码: https://github.com/ethand91/flask-email
标签: tac