2016-05-05 36 views
6

का उपयोग करने के लिए फ्लास्क-मेल कॉन्फ़िगर करें जब मैं नीचे दिए गए सेटिंग्स का उपयोग करके जीमेल के एसएमटीपी सर्वर पर फ्लास्क-मेल का उपयोग करके एक ईमेल भेजने का प्रयास करता हूं, तो मुझे [Errno -2] Name or service not known मिलता है। जीमेल के साथ ईमेल भेजने के लिए मैं अपनी कॉन्फ़िगरेशन को कैसे ठीक करूं?जीमेल

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' 

उत्तर

9
  1. सर्वर "smtp.gmail.com" है।
  2. पोर्ट को उपयोग की जाने वाली सुरक्षा के प्रकार से मेल खाना चाहिए।
    • यदि MAIL_USE_TLS = True के साथ STARTTLS का उपयोग करते हैं, तो MAIL_PORT = 587 का उपयोग करें।
    • यदि एसएसएल/टीएलएस का उपयोग सीधे MAIL_USE_SSL = True के साथ करते हैं, तो MAIL_PORT = 465 का उपयोग करें।
    • या तो STARTTLS या SSL/TLS सक्षम करें, दोनों नहीं।
  3. अपने Google खाते की सुरक्षा सेटिंग्स के आधार पर, आपको खाता पासवर्ड के बजाय app password उत्पन्न करने और उपयोग करने की आवश्यकता हो सकती है। इसके लिए 2-चरणीय सत्यापन सक्षम करने की भी आवश्यकता हो सकती है। आपको शायद इसे वैसे भी सेट करना चाहिए।
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 का जवाब करने के लिए एक छोटे लेकिन महत्वपूर्ण इसके अलावा:

आप 2-चरणीय सत्यापन 'अपने Google खाते में सक्षम होनी चाहिए इससे पहले कि आप एप्लिकेशन-विशिष्ट पासवर्ड सेट करने के लिए कर रहे हैं ।