2016-05-05 3 views
6

Wenn ich versuche, eine E-Mail mit Flask-Mail an den SMTP-Server von Gmail zu senden, verwende ich die folgenden Einstellungen: [Errno -2] Name or service not known. Wie behebe ich meine Konfiguration zum Senden von E-Mails mit Google Mail?Konfigurieren von Flask-Mail zur Verwendung von 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' 

Antwort

9
  1. Der Server ist "smtp.gmail.com".
  2. Der Port muss dem verwendeten Sicherheitstyp entsprechen.
  3. Wenn Sie STARTTLS mit MAIL_USE_TLS = True verwenden, verwenden Sie MAIL_PORT = 587.
  4. Wenn Sie SSL/TLS direkt mit MAIL_USE_SSL = True verwenden, verwenden Sie MAIL_PORT = 465.
  5. Aktivieren Sie entweder STARTTLS oder SSL/TLS, nicht beide.
  6. Abhängig von den Sicherheitseinstellungen Ihres Google-Kontos müssen Sie möglicherweise ein app password und nicht das Kontopasswort generieren und verwenden. Dies erfordert möglicherweise auch die Aktivierung der Bestätigung in zwei Schritten. Sie sollten das wahrscheinlich trotzdem einrichten.
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

Eine kleine, aber wichtige Ergänzung zu davidism Antwort:

Sie haben müssen ‚2-Schritt-Prüfung‘ aktiviert auf Ihrem Google-Konto, bevor Sie in der Lage sind App-spezifische Passwörter einrichten .

Verwandte Themen