邮件发送

前言

在程序中经常使用到邮件发送功能,如何使用flask进行邮件发送呢?Flask是一个扩展性极强的框架,在Flask核心代码上可以自由的扩展功能。比如邮件发送功能,就有flask-mail库,使用该库可以简单的实现邮件发送功能。

1. 开启163发送邮件功能

我们使用163的电子邮箱服务器作为发送邮件者,所以需要开启客户端授权码,并设置授权码。

设置如下:

2. 使用flask-mail库实现邮件发送功能

2.1 安装

pip install flask-mail

2.2 功能实现

from flask import Flask
from flask_mail import Mail, Message

app = Flask(__name__)

app.config["MAIL_SERVER"] = "smtp.163.com"
app.config["MAIL_PORT"] = 465  # 设置邮箱端口为465,默认为25,由于阿里云禁止了25端口,所以需要修改
app.config["MAIL_USE_SSL"] = True  # 163邮箱需要开启SSL
app.config["MAIL_USERNAME"] = "wanghaifei36@163.com"
app.config["MAIL_PASSWORD"] = "wanghai135588"

mail = Mail(app)

@app.route("/send_mail")
def send_mail():
    """
    发送邮件, sender为发送者邮箱, recipients为接受者邮箱
    """
    message = Message("测试邮件标题122", sender=app.config["MAIL_USERNAME"], recipients=["779598160@qq.com"])
    message.body = "测试邮件的内容122"

    send_email(message)

    return "发送成功"

def send_email(msg):
    with app.app_context():
        mail.send(msg)

if __name__ == "__main__":
    app.run(port=8080)

设置的参数定义如下:

MAIL_SERVER: 电子邮件服务器的主机名或IP地址, 默认为localhost

MAIL_PORT: 电子邮件服务器的端口,默认为25

MAIL_USE_TLS: 启用传输层安全协议,默认为False

MAIL_USE_SSL: 启用安全套接层协议, 默认为False

MAIL_USERNAME: 邮件账户的用户名

MAIL_PASSWORD:邮件账户的密码,为在163中设置的授权码

3. 网易163免费邮箱相关服务器信息如下:

[图片上传失败...(image-7598a2-1539172338816)]

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java Mail 简介 常见的邮件协议包括:SMTP(Simple Mail Transfer Protocol...
    Josaber阅读 3,305评论 1 9
  • 背景 近期在接触传说中最优雅的 PHP 框架——Laravel,学习了一下邮件发送功能,在此分享一下,其中,我使用...
    泥豆芽儿MT阅读 2,980评论 0 7
  • 我用163和qq已经实现了 很狗血的是我头一天搞了半天总是发送失败,说连接不上服务,第二天到公司一发送就成功了,不...
    倚南_Determined阅读 3,918评论 0 1
  • 韩领 宁波市百雷仕电动工具有限公司 【日精进打卡第88天】 364期谦虚组三组 【知~学习】 《六项精进》2遍,共...
    韩领阅读 159评论 0 0
  • 还记得上小学的时候特别喜欢看动画片,放学时永远跑在一群放学同学的最前面,跑了几里路到家书包一扔就打开电视机,就为了...
    乐水遥阅读 401评论 0 1