2016-05-05 19 views
6

Aşağıdaki ayarları kullanarak Gmail'in SMTP sunucusuna Flask-Mail kullanarak bir e-posta göndermeye çalıştığımda, [Errno -2] Name or service not known elde ederim. Gmail'le e-posta göndermek için yapılandırmamı nasıl düzeltirim?GMail'i kullanmak için Flask-Mail'i yapılandırın

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' 

cevap

9
  1. sunucusu "smtp.gmail.com" dir.
  2. Bağlantı noktası kullanılan güvenlik türüyle eşleşmelidir.
    • MAIL_USE_TLS = True ile STARTTLS kullanılarak, ardından MAIL_PORT = 587 kullanın.
    • SSL/TLS'yi doğrudan MAIL_USE_SSL = True ile kullanıyorsanız, MAIL_PORT = 465'u kullanın.
    • Her ikisini de değil, STARTTLS veya SSL/TLS'yi etkinleştirin.
  3. Google hesabınızın güvenlik ayarlarına bağlı olarak, hesap parolası yerine bir app password oluşturmanız ve kullanmanız gerekebilir. Bu, 2 adımlı doğrulamanın etkinleştirilmesini de gerektirebilir. Bunu zaten ayarlamalısın.
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

davidism cevabı için küçük ama önemli bir ek: uygulamaya özel şifreler kurmak edebiliyoruz önce

Google hesabınızdan etkinleştirilmiş '2 adımlı doğrulama' olmalıdır .

İlgili konular