2016-05-05 9 views
6

Quando provo a inviare un'e-mail utilizzando Flask-Mail al server SMTP di Gmail utilizzando le impostazioni di seguito, ottengo [Errno -2] Name or service not known. Come posso risolvere la mia configurazione per inviare email con Gmail?Configura Flask-Mail per utilizzare GMail

from flask import Flask, render_template, redirect, url_for 
from flask_mail import Mail, Message 

app = Flask(__name__) 
app.config.update(
    MAIL_SERVER='[email protected]', 
    MAIL_PORT=587, 
    MAIL_USE_SSL=True, 
    MAIL_USERNAME = 'ri******[email protected]', 
    MAIL_PASSWORD = 'Ma*****fe' 
) 

mail = Mail(app) 

@app.route('/send-mail/') 
def send_mail(): 
    msg = mail.send_message(
     'Send Mail tutorial!', 
     sender='ri******[email protected]', 
     recipients=['ri*********[email protected]'], 
     body="Congratulations you've succeeded!" 
    ) 
    return 'Mail sent' 

risposta

9
  1. Il server è "smtp.gmail.com".
  2. La porta deve corrispondere al tipo di protezione utilizzato.
    • Se si utilizza STARTTLS con MAIL_USE_TLS = True, utilizzare MAIL_PORT = 587.
    • Se si utilizza SSL/TLS direttamente con MAIL_USE_SSL = True, utilizzare MAIL_PORT = 465.
    • Abilitare STARTTLS o SSL/TLS, non entrambi.
  3. A seconda delle impostazioni di protezione del proprio account Google, potrebbe essere necessario generare e utilizzare uno app password anziché la password dell'account. Ciò potrebbe anche richiedere l'attivazione della verifica in due passaggi. Probabilmente dovresti installarlo comunque.
MAIL_SERVER = 'smtp.gmail.com' 
MAIL_PORT = 465 
MAIL_USE_SSL = True 
MAIL_USERNAME = '[email protected]' 
MAIL_PASSWORD = 'app password generated in step 3' 
6

Un piccolo ma importante aggiunta alla risposta di davidism:

è necessario disporre di 'verifica 2-step' attivato sul tuo account Google prima che tu sia in grado di creare password specifiche per app .

Problemi correlati