美文网首页
Flask http发送邮件接口

Flask http发送邮件接口

作者: 勇敢的心888 | 来源:发表于2021-11-25 21:58 被阅读0次

    搭建Http接口

    from flask import Flask
    from flask import request
    from email.mime.text import MIMEText
    import smtplib
    
    app = Flask(__name__)
    app.debug = True
    
    @app.route('/')
    def hello_world():
        return 'Hello World123!'
    
    # request.form:用于接收表单参数
    # request.data: 获取传参
    # request.args:用于接收GET参数
    # request.json:用于接收JSON参数
    # request.values:获取所有参数(表单参数+GET参数)
    # request.file:用于接收文件
    
    @app.route("/sendmail", methods=['POST'])
    def send_mail():
        # 获取邮件内容
        content = request.data.decode()
        print(content)
        # 设置服务器所需信息
        # qq邮箱服务器地址
        mail_host = 'smtp.qq.com'
        # qq用户名
        mail_user = 'zhuzhiqianghao'
        # 密码(部分邮箱为授权码)
        mail_pass = 'bbbaziqavbxtcaie'
        # 邮件发送方邮箱地址
        sender = 'zhuzhiqianghao@qq.com'
        # 邮件接受方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发
        receivers = ['zhu_zhiqiang@dahuatech.com', 'song_gongde@dahuatech.com', 'zhuzhiqiangxx@163.com']
    
        # 设置email信息
        # 邮件内容设置
        message = MIMEText(content, 'plain', 'utf-8')
        # 邮件主题
        message['Subject'] = '停车云报警'
        # 发送方信息
        message['From'] = sender
        # 接受方信息
        message['To'] = ','.join(receivers)
    
        # 登录并发送邮件
        try:
            smtpObj = smtplib.SMTP()
            # 连接到服务器
            smtpObj.connect(mail_host, 25)
            # 登录到服务器
            smtpObj.login(mail_user, mail_pass)
            # 发送
            smtpObj.sendmail(sender, receivers, message.as_string())
    
            # 退出
            smtpObj.quit()
            print('success')
            return "send success"
        except smtplib.SMTPException as e:
            print('error', e)  # 打印错误
            return "send fail"
        return 'send mail success'
    
    if __name__ == '__main__':
        app.run(debug=True,port=8001)
    

    测试接口

    import requests
    import json
    data = {'key1':'value1','key2':'value2'}
    url = "http://127.0.0.1:5000/sendmail"
    r = requests.post(url, data=json.dumps(data))
    print(r)
    

    通过shell 发送邮件

    curl -H "Content-Type: application/json" 
        -X POST 
        -d '{"user_id": "123", "coin":100, "success":1, "msg":"OK!" }' 
        "http://127.0.0.1:5000/sendmail"
    

    相关文章

      网友评论

          本文标题:Flask http发送邮件接口

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