美文网首页
6.电子邮件

6.电子邮件

作者: ArtioL | 来源:发表于2018-11-01 21:29 被阅读0次

涉及的包

  • Flask-Mail
  • SendGrid-python

6.1使用Flask-mail发送邮件

from flask_mail import Mail

app = Flask(__name__)
...
mail = Mail(app)

6.1.1 配置Flask-Mail

Flask-Mail的常用配置

配置键 说明 默认值
MAIL_SERVER 用于发送邮件的SMTP服务器 localhost
MAIL_PORT 发送端口 25
MAIL_USE_TLS 是否使用STATRTLS False
MAIL_USE_SSL 是否使用SSL/TLS False
MAIL_USERNAME 发信服务器的用户名 None
MAIL_PASSWORD 发信服务器的密码 None
MAIL_DEFAULT_SENDER 默认的发信人 None

SSL/TLS 加密
MAIL_USE_SSL = True
MAIL_PORT = 465

STARTTLS 加密
MAIL_USE_TLS = True
MAIL_PORT = 587

常用SMTP服务提供商配置

电子邮件服务提供商 MAIL_SERVER MAIL_USERNAME MAIL_PASSWORD 额外步骤
Gmail stmp.gmail.com 邮箱地址 邮箱密码 开启“Allow less secure apps",在本地设置VPN代理
QQ stmp.qq.com 邮箱地址 授权码 开启SMTP服务并获取授权码
Sina stmp.sina.com 邮箱地址 邮箱密码 开启STMP服务
163 stmp.163.com 邮箱地址 授权码 开启STMP服务
Outlook stmp.live.com 或 stmp.office365.com 邮箱地址 邮箱密码

邮件服务配置demo

import os
from flask import Flask
from flask_mail import Mail

app = Flask(__name__)

app.config.update(
  ...
  MAIL_SERVER = os.getenv("MAIL_SERVER"),
  MAIL_PORT = 587,
  MAIL_USE_TLS = True,
  MAIL_USERNAME = os.getenv("MAIL_USERNAME"),
  MAIL_PASSWORD = os.getenv("MAIL_PASSWORD"),
  MAIL_DEFAULT_SENDER = ("aRTIO", os.getenv("MAIL_USERNAME")),
)
mail = Mail(app)

.env

MAIL_SERVER = stmp.exemple.com
MAIL_USERNAME = yourname@example.com
MAIL_PASSWORD = your_password

默认发信人由一个两元素元祖组成,即(姓名,邮箱地址)

MAIL_DEFAULT_SENDER = (”Yourname","your_name@example.com")

6.1.2构建邮件数据

from flask_mail import Message
from app import mail

message = Message(subject="Hello, World", recipients=["Revicer <reciver@example.com>"], body="body")

发送邮件

mail.send(message)

相关文章

网友评论

      本文标题:6.电子邮件

      本文链接:https://www.haomeiwen.com/subject/bzrfxqtx.html