2016-09-26 2 views
-1

Ich mache eine einfache WebApp mit Flask-Framework in Python. Es dauert Benutzereingaben für E-Mail und Name von meiner Website (www.anshulbansal.esy.es) und wird prüfen, ob E-Mail in der Datenbank existiert (hier Datenbank wird als Wörterbuch für jetzt vorausgesetzt) ​​dann wird es nicht weiter arbeiten, aber wenn es nicht in der Datenbank existiert, Es wird ein zufälliger Link zu der eingereichten E-Mail gesendet und wenn der Benutzer auf den Link klickt, wird seine Information zu meiner Datenbank hinzugefügt.Wie löse ich builtins.ConnectionRefusedError Fehler beim Versuch, E-Mail mit Flashmail zu senden

Es ist fast fertig, aber dieser Fehler kommt mir in den Weg. Schauen Sie sich diesen Code:

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 = {'[email protected]': 'Anshul Bansal', '[email protected]': 'Bansal', '[email protected]': '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='[email protected]', 
    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=['[email protected]'], 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) 

Aber dieser Code gibt mir einen builtins.ConnectionRefusedError Fehler. Aber vor 2-3 Versuchen des Sendens von E-Mail waren ohne Fehler erfolgreich. Wie löse ich es?

Here is the screenshot of error

+0

Sie versuchen, 2-3 mal? Sie erhalten einen besseren E-Mail-Anbieter? Es gibt nicht wirklich etwas, was wir bezüglich der Qualität der von Ihnen verwendeten Drittanbieterdienste tun können. – davidism

+0

Ja, ich habe es viele Male versucht. Es funktionierte gut in 3-4 Versuchen. –

Antwort

1

Sie sollten Konfiguration aktualisieren, bevor Sie E-Mail initialisieren:

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 = '[email protected]', 
    MAIL_PASSWORD = 'your_password', 
) 

mail = Mail(app) 
+0

Irgendwelche anderen Fehler in diesem Code? –

+0

Es funktioniert nicht. Den gleichen Fehler erhalten. –

+0

Können Sie mir sagen, Fehler, dass Sie erhalten –

Verwandte Themen