美文网首页
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