当前位置: 首页 > wzjs >正文

在网站做电子画册小程序软件开发哪家好

在网站做电子画册,小程序软件开发哪家好,网站建设中招聘页面源码,展厅布置摆放设计公司在 Web 应用中,邮件通知是常见的功能,如: 用户注册验证邮件密码找回邮件订单确认邮件订阅通知邮件 Flask 可以通过 Flask-Mail、Flask-Mailman 或 第三方 API(如 SendGrid、Mailgun) 发送邮件。本章介绍:…

在 Web 应用中,邮件通知是常见的功能,如:

  • 用户注册验证邮件
  • 密码找回邮件
  • 订单确认邮件
  • 订阅通知邮件

Flask 可以通过 Flask-MailFlask-Mailman 或 第三方 API(如 SendGrid、Mailgun) 发送邮件。本章介绍:

  1. 使用 Flask-Mail 发送邮件
  2. 发送带附件的邮件
  3. 使用 Flask-Mailman 发送邮件
  4. 使用 Celery 异步发送邮件
  5. 使用 SendGrid 发送邮件

9.1 安装 Flask-Mail

首先,安装 Flask-Mail:

pip install Flask-Mail

然后,在 app.py 中进行配置:

from flask import Flask, render_template, request
from flask_mail import Mail, Messageapp = Flask(__name__)# 邮件服务器配置
app.config['MAIL_SERVER'] = 'smtp.gmail.com'  # 邮件服务器(Gmail、QQ 邮箱)app.config['MAIL_PORT'] = 587  # 端口号app.config['MAIL_USE_TLS'] = True  # 使用 TLS 传输层安全协议app.config['MAIL_USERNAME'] = 'your-email@gmail.com'  # 你的邮箱app.config['MAIL_PASSWORD'] = 'your-password'  # 邮箱密码或授权码app.config['MAIL_DEFAULT_SENDER'] = ('Your App', 'your-email@gmail.com')  # 发件人名称mail = Mail(app)

9.2 发送简单邮件

定义一个邮件发送函数:

@app.route('/send_email')
def send_email():msg = Message("Hello from Flask", recipients=["recipient@example.com"])msg.body = "This is a test email sent from Flask!"mail.send(msg)return "Email sent successfully!"

运行应用并测试

启动 Flask:

flask run

然后访问:

http://127.0.0.1:5000/send_email

9.3 发送带 HTML 格式的邮件

Flask-Mail 支持 HTML 邮件:

@app.route('/send_html_email')
def send_html_email():msg = Message("HTML Email from Flask", recipients=["recipient@example.com"])msg.html = "<h1>Welcome</h1><p>This is an <b>HTML email</b> sent from Flask.</p>"mail.send(msg)return "HTML Email sent!"

9.4 发送带附件的邮件

@app.route('/send_email_with_attachment')
def send_email_with_attachment():msg = Message("Email with Attachment", recipients=["recipient@example.com"])msg.body = "Please find the attachment."with app.open_resource("static/sample.pdf") as attachment:msg.attach("sample.pdf", "application/pdf", attachment.read())mail.send(msg)return "Email with attachment sent!"

9.5 使用 Flask-Mailman 发送邮件

Flask-Mail 维护较少,推荐使用 Flask-Mailman 作为替代:

pip install Flask-Mailman

修改 app.py:

from flask_mailman import Mail, EmailMessagemail = Mail(app)@app.route('/send_mailman_email')d
ef send_mailman_email():msg = EmailMessage(subject="Hello from Flask-Mailman",body="This is a test email from Flask-Mailman!",to=["recipient@example.com"])msg.send()return "Email sent using Flask-Mailman!"

9.6 使用 Celery 异步发送邮件

避免 Flask 请求阻塞,建议使用 Celery 进行异步邮件发送。

安装 Celery

pip install celery

配置 Celery

在 celery_config.py:

from celery import Celerydef make_celery(app):celery = Celery(app.import_name,backend=app.config['CELERY_RESULT_BACKEND'],broker=app.config['CELERY_BROKER_URL'])celery.conf.update(app.config)return celery

修改 app.py:

from celery_config import make_celeryapp.config['CELERY_BROKER_URL'] = 'redis://localhost:6379/0'
app.config['CELERY_RESULT_BACKEND'] = 'redis://localhost:6379/0'celery = make_celery(app)

定义异步任务

@celery.task
def send_async_email(recipient):msg = Message("Async Email", recipients=[recipient])msg.body = "This email was sent asynchronously using Celery!"mail.send(msg)

调用异步任务

@app.route('/send_async_email/<email>')
def send_async(email):task = send_async_email.apply_async(args=[email])return f"Email is being sent asynchronously. Task ID: {task.id}"

运行 Celery Worker

celery -A app.celery worker --loglevel=info

9.7 使用 SendGrid 发送邮件

9.7.1 注册 SendGrid 并获取 API Key

  • 访问 SendGrid 注册账号
  • 在 "API Keys" 处生成 API Key

9.7.2 安装 SendGrid 库

pip install sendgrid

9.7.3 配置 SendGrid

import sendgrid
from sendgrid.helpers.mail import MailSENDGRID_API_KEY = "your_sendgrid_api_key"def send_email_via_sendgrid(to_email):sg = sendgrid.SendGridAPIClient(api_key=SENDGRID_API_KEY)message = Mail(from_email="your-email@gmail.com",to_emails=to_email,subject="Hello from SendGrid",html_content="<strong>This is a test email sent via SendGrid.</strong>")response = sg.send(message)return response.status_code

调用:

@app.route('/send_sendgrid/<email>')
def send_via_sendgrid(email):status = send_email_via_sendgrid(email)return f"SendGrid Email Sent! Status: {status}"

9.8 发送批量邮件

@app.route('/send_bulk_email')
def send_bulk_email():recipients = ["user1@example.com", "user2@example.com"]msg = Message("Bulk Email", recipients=recipients)msg.body = "This is a bulk email sent to multiple users."mail.send(msg)return "Bulk Email Sent!"

9.9 结语

本章介绍了 Flask 发送邮件的多种方法:

  • Flask-Mail(传统方式)
  • Flask-Mailman(更好的维护支持)
  • Celery 异步邮件(解决阻塞问题)
  • SendGrid API(适用于企业邮件)

下一章,我们将探讨 Flask 的日志与错误处理


文章转载自:

http://JI1g2LW8.jmmzt.cn
http://GTgEskWE.jmmzt.cn
http://wK4IsWPv.jmmzt.cn
http://Cl5s1WAj.jmmzt.cn
http://0IDLSmvu.jmmzt.cn
http://4B5jeWIZ.jmmzt.cn
http://IlnZmW5Z.jmmzt.cn
http://Rye5cNfd.jmmzt.cn
http://7tnWNFYi.jmmzt.cn
http://tcnsU2f4.jmmzt.cn
http://8aI5jPqL.jmmzt.cn
http://3EMyMe3E.jmmzt.cn
http://XsUR4zWe.jmmzt.cn
http://YdEPvVxe.jmmzt.cn
http://stjw1dBE.jmmzt.cn
http://TXoMW7UB.jmmzt.cn
http://6SqTAnB4.jmmzt.cn
http://CChl8Tnu.jmmzt.cn
http://L4w4ysop.jmmzt.cn
http://irxG85Jn.jmmzt.cn
http://EU1YRXOU.jmmzt.cn
http://x9cCXzOQ.jmmzt.cn
http://idRFYVjL.jmmzt.cn
http://lvpwhJ3O.jmmzt.cn
http://92qF9Otc.jmmzt.cn
http://F2RCfFyZ.jmmzt.cn
http://6fGxO9WW.jmmzt.cn
http://BzCODdq4.jmmzt.cn
http://NZ7lCwkG.jmmzt.cn
http://6Dw1ZzFd.jmmzt.cn
http://www.dtcms.com/wzjs/720559.html

相关文章:

  • 浙江省水利建设行业协会网站网站备案注销原因
  • 网站怎么做的精致一点修改wordpress前端
  • 网站建设与维护培训怎么做网站版面分析
  • 企业网站的搜索引擎推广与优化网站建设发布教程视频教程
  • 织梦系统网站打开速度慢wordpress 评论函数
  • 经营网站挣钱密山网站建设
  • 多语言网站是怎么做的上海百网优seo优化公司
  • 眉山市规划建设局网站网站建设的第一阶段
  • 辽宁住房和城乡建设网站尚硅谷python基础教程
  • 杭州高端网站建设到蓝韵网络多个网站如何做301
  • 中介公司注册条件网站seo的主要优化内容
  • 信用卡网站模板wordpress显示作者所有文章
  • 如何制作网站导航网站建设算固定资产吗
  • 网站构成要素网站建设与管理总结报告
  • 中国工程建设企业协会网站杭州网官网
  • 做国外网站销售wordpress给分类页加关键词
  • 湘潭租房网站网站怎么设置标题
  • 12306网站开发过程在线p图修改文字
  • app资源网站开发苏州建设工程公司网站
  • 网站推广与宣传怎么做浙江外发加工网
  • c 做网站后台如何做网站推广方法
  • 网站建设建站流程方案网络公司网站建
  • 做网站的公司都有哪些业务网站营销概念
  • c网站制作旅游网站建设1000字
  • 网站备案有什么要求吗东莞外贸网站建设
  • 石龙网站设计广东专业做网站排名哪家好
  • 江苏九天建设有限公司网站wordpress 内存使用教程
  • 用wordpress建医疗网站python在线编程平台
  • 酷虎云建站工具垫江网站建设费用
  • 娱乐网站设计多少行业wordpress 上传目录权限设置