【问题标题】:Send email automatically in Flask framework在 Flask 框架中自动发送电子邮件
【发布时间】:2020-12-24 06:51:32
【问题描述】:

我想要一个电子邮件功能,在用户注册后确认 邮件将被发送。我首先将用户的输入作为 post 方法,然后 将其传递给函数。这是我的代码:

reg_args = reqparse.RequestParser()
reg_args.add_argument("name", type=str, help="Name is missing", required=True)
reg_args.add_argument(
    "email", type=str, help="Email is missing", required=True)
reg_args.add_argument("password", type=str,
                      help="Password is missing", required=True)
reg_args.add_argument("cpassword", type=str,
                      help="Confirm Password is missing", required=True)



    class Register(Resource):
        def post(self):
            try:
                args = reg_args.parse_args()
                name = args.name.strip()
                email = args.email.strip()
                password = args.password.strip()
                cpassword = args.cpassword.strip()
    
                if password == cpassword:
                    pass_hashed = pass_salt(str(password))
    
                    check_email = mongo.db.tw_user_details.find_one(
                        {'email': email})
    
                    if check_email == None:
                        query_result = mongo.db.tw_user_details.insert(
                            {'name': name, 'email': email, 'password': pass_hashed, 'status': 'Active', 'verification': 'Pending', 'token': '', 'registered_date': datetime.now()})
    
                        if len(str(query_result)) >= 24:
                            return jsonify({'status': True, 'uid': str(query_result), 'message': "You have successfully registered!!!"})
                        else:
                            return jsonify({'status': False, 'message': "Registration Failed. Please try again!!!"})
    
                    else:
                        return jsonify({'status': False, 'message': "Your Email is already exists. Please Reset Password to Login!!!"})
    
                else:
                    return jsonify({'status': False, 'message': "Password and Confirm Password don't match!!!"})
    
            except:
                return jsonify({'status': False, 'message': "Error:: Something went wrong. Please try again!!!"})

发送邮件类

  class sendMail(Resource):
        def post(self):
            try:
                args = reg_args.parse_args()
                name = args.name.strip()
                email = args.email.strip()
                
                check_details = mongo.db.tw_user_details.find_one({'email': email,'name': name})
    
                if (check_details == None):
                    return jsonify({'status': False, 'message': "Credential not found!!!"})
                else:
                    body = f'''<!doctype html>
                               some body
                            </html>'''
    
                
                msg = send_html_mail("Sub:New Registration",body,email)
                
                if (msg==True):
                    return jsonify({'status': True, 'message': "Email Send.!!!"})
                else:
                    return jsonify({'status': False, 'message': "Invalid Mail ID!!!"})
               
            except:
                return jsonify({'status': False, 'message': "Email not Send.!!!"}) 

但是邮件发不出去,如何连接两个类让它自动发送邮件?

send_html_mail功能正常,没有问题。

【问题讨论】:

    标签: python flask


    【解决方案1】:

    这很容易在Registerpost 中调用send_html_mail。相反,暴露sendMailpost 是危险的。知道地址的人都可以发邮件。

    【讨论】:

      猜你喜欢
      • 2011-10-22
      • 2013-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-18
      • 2022-01-11
      • 2013-10-31
      相关资源
      最近更新 更多