Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何解决尝试使用flask mail发送电子邮件时出现的builtins.ConnectionRefusedError错误_Python_Email_Flask_Flask Mail - Fatal编程技术网

Python 如何解决尝试使用flask mail发送电子邮件时出现的builtins.ConnectionRefusedError错误

Python 如何解决尝试使用flask mail发送电子邮件时出现的builtins.ConnectionRefusedError错误,python,email,flask,flask-mail,Python,Email,Flask,Flask Mail,我正在用python中的Flask框架制作一个简单的WebApp。它将从我的网站()获取用户输入的电子邮件和名称,并将检查数据库中是否存在电子邮件(这里的数据库现在应该是字典),然后它将无法进一步工作,但如果数据库中不存在电子邮件,它将向提交的电子邮件发送随机链接,如果用户单击该链接,然后它的信息将被添加到我的数据库中 差不多完成了,但是这个错误妨碍了我。查看此代码: from flask import Flask, render_template, request, redirect, url

我正在用python中的Flask框架制作一个简单的WebApp。它将从我的网站()获取用户输入的电子邮件和名称,并将检查数据库中是否存在电子邮件(这里的数据库现在应该是字典),然后它将无法进一步工作,但如果数据库中不存在电子邮件,它将向提交的电子邮件发送随机链接,如果用户单击该链接,然后它的信息将被添加到我的数据库中

差不多完成了,但是这个错误妨碍了我。查看此代码:

from flask import Flask, render_template, request, redirect, url_for
from flask_mail import Mail, Message
import random
import string


def random_generator(size=6, chars=string.ascii_letters + string.digits):
    return ''.join(random.choice(chars) for x in range(size))


subscribers_d = {'anshul.bansal5@yahoo.com': 'Anshul Bansal', 'anshul.bansal3@yahoo.com': 'Bansal', 'anshul.bansal@yahoo.com': 'Anshul',}

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

app.config.update(
    MAIL_SERVER='smtp.gmail.com',
    MAIL_PORT=465,
    MAIL_USE_TLS = False,
    MAIL_USE_SSL=True,
    MAIL_USERNAME='anshul.bansal950@gmail.com',
    MAIL_PASSWORD="It's Secret"
)


@app.route('/')
def index():
    return render_template("index.html")


@app.route('/submit', methods=['POST'])
def submit():
    if request.method == "POST":
        v_name = request.form['vname']
        v_email = request.form['vemail']
        return send_mail(v_name, v_email)
    else:
        return redirect(url_for("/"))

random_link_sent = random_generator(20)


@app.route("/")
def send_mail(v_name, v_email):
    if v_email in subscribers_d:
        return "Oh! It seems that you have already registered."
    else:
        msg = Message('Confirm Subscription', sender=['anshul.bansal950@gmail.com'], recipients=[v_email])
        msg.html = "<h3>Confirm Subscription</h3>" \
           "<p>Hi! </p>" + v_name + "<p> , Please click on below link to subscribe</p>" \
            "Link: " + ' www.anshulbansal.esy.es/' + random_link_sent
        mail.send(msg)
        return 'Check Your Inbox For Confirmation Email'


@app.route("/<random_link_sent>")
def confirm(random_link_sent):
    return "You have registered on " + random_link_sent
    subscribers_d[v_email] = v_name


if __name__ == "__main__":
    app.run(debug=True)
从flask导入flask,呈现模板,请求,重定向,url
从电子邮件导入邮件、消息
随机输入
导入字符串
def随机_生成器(大小=6,字符=string.ascii_字母+string.digits):
返回“”。加入(范围(大小)内x的随机选择(字符))
订阅者d={'anshul。bansal5@yahoo.com“:”安舒尔班萨尔“,”安舒尔。bansal3@yahoo.com’:‘班萨尔’、‘安舒尔’。bansal@yahoo.com“:‘Anshul’,}
app=烧瓶(名称)
邮件=邮件(应用程序)
app.config.update(
MAIL_SERVER='smtp.gmail.com',
邮件端口=465,
MAIL\u USE\u TLS=False,
邮件使用SSL=True,
邮件(USERNAME='anshul)。bansal950@gmail.com',
MAIL\u PASSWORD=“这是秘密”
)
@应用程序路径(“/”)
def index():
返回渲染模板(“index.html”)
@app.route('/submit',methods=['POST'])
def submit():
如果request.method==“POST”:
v_name=request.form['vname']
v_email=请求。表单['vemail']
返回发送邮件(v_名称、v_电子邮件)
其他:
返回重定向(url_表示(“/”)
随机链路发送=随机发生器(20)
@附件路线(“/”)
def发送电子邮件(v_名称、v_电子邮件):
如果在订户中发送电子邮件:
return“哦!您似乎已经注册了。”
其他:
msg=消息('确认订阅',发送方=['anshul。bansal950@gmail.com“],收件人=[v_电子邮件])
msg.html=“确认订阅”\
“嗨!

”+v_name+“,请单击下面的链接订阅”\ 链接:“+”www.anshulbansal.esy.es/“+随机链接” 邮件发送(msg) 返回“检查收件箱中的确认电子邮件” @附件路线(“/”) def确认(随机链接发送): 返回“您已注册”+随机链接发送 订阅者\u d[v_电子邮件]=v_姓名 如果名称=“\uuuuu main\uuuuuuuu”: app.run(debug=True)
但是这段代码给了我一个buildins.ConnectionRefusedError错误。 但之前,2-3次发送电子邮件的尝试都是成功的,没有任何错误。 我如何解决它


在初始化邮件之前,您应该更新配置:

app = Flask(__name__)

app.config.update(
    DEBUG = True,
    MAIL_SERVER = 'smtp.gmail.com',
    MAIL_PORT = 587,
    MAIL_USE_TLS = True,
    MAIL_USE_SSL = False,
    MAIL_USERNAME = 'your_username@gmail.com',
    MAIL_PASSWORD = 'your_password',
)

mail = Mail(app)

问题是你的应用程序没有使用它。请再次检查我的答案,因为我已经更新了它()我发现了错误。邮件应用程序应在应用程序配置更新后初始化。它现在开始工作了。正如我告诉你的那样