2010-05-24 14 views
8

के साथ सक्रिय-ईमेल भेजें, अगर मैं django-पंजीकरण का उपयोग करके उपयोगकर्ता नाम, पासवर्ड के साथ सक्रिय ईमेल भेजने का कोई तरीका हूं तो उत्सुक हूं। सबसे पहले मैंने पंजीकरण फॉर्म को संशोधित करने के बारे में सोचा लेकिन मुझे कुछ उदाहरण चाहिए।django-पंजीकरण

+0

ईमेल में उपयोगकर्ता पासवर्ड नहीं भेजें। –

उत्तर

11

django-registration ईमेल भेजने को संभालने के लिए, निम्नलिखित कोड का उपयोग करता है आंतरिक रूप से,:

send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [self.user.email]) 

आप काम करना चाहते हैं, तो आप अपने settings.py में मूल्य DEFAULT_FROM_EMAIL निर्दिष्ट करने के लिए होगा।

मेल SMTP मेजबान और बंदरगाह EMAIL_HOST और EMAIL_PORT सेटिंग्स में निर्दिष्ट का उपयोग कर भेज दिया जाता है:

इसके अलावा, निम्न पर ध्यान दें। EMAIL_HOST_USER और EMAIL_HOST_PASSWORD सेटिंग्स, यदि निर्धारित करते हैं, एसएमटीपी सर्वर से प्रमाणित करने के लिए इस्तेमाल कर रहे हैं, और EMAIL_USE_TLS नियंत्रण सेट एक सुरक्षित कनेक्शन प्रयोग किया जाता है या नहीं।

तो, एक उदाहरण देने के लिए, यहाँ क्या मैं एक जीमेल खाते का उपयोग करने के लिए एक settings.py फ़ाइल में उपयोग किया है है:

EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 465 
EMAIL_USE_TLS = True 

EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'my_emails_password' 

django-registration तो ईमेल भेजने के लिए सक्षम होना चाहिए।

+6

और, केवल रिकॉर्ड के लिए, किसी और को ईमेल सेट अप करने के लिए - ** ** EMAIL_PORT = '587''' के रूप में पोर्ट के चारों ओर उद्धरणों का उपयोग करने के लिए मैंने जो गलती की है, उसे नहीं करें। मुझे डिबगिंग के कुछ घंटों का खर्च हुआ ... –

+0

आपकी टिप के लिए धन्यवाद, मैंने अपनी गलती ईमेल कॉन्फ़िगरेशन की जांच की है - केवल एक जीमेल खाते के साथ इसे स्थापित करने के बाद 4 लाइनों को खोजने के लिए, मैंने इसे कुछ बकवास लोकलहोस्ट खाते के लिए सेट अप किया था ! मुसीबत? हल किया। – bharal

+2

मुझे लगता है कि हमें 'EMAIL_PORT = 587' का उपयोग करना होगा जब' EMAIL_USE_TLS = True' –

3

EMAIL_PORT = 465 कुछ साल पहले काम कर रहा था। अब आपको जीमेल के साथ पोर्ट 587 का उपयोग करने की आवश्यकता है। कारण: Django शुरुआत से एसएसटीपी के साथ एसएमटीपी का समर्थन नहीं करता है। सादा-पाठ कनेक्शन स्थापित होने के बाद केवल STARTTLS कमांड समर्थित है। हालांकि, जीमेल पोर्ट 465 पर इस विकल्प का समर्थन नहीं करता है।

1

आशा है कि यह किसी की मदद करेगा। आधे घंटे के लिए समस्या निवारण करने के बाद, मुझे एहसास हुआ कि मैं स्पष्ट रूप से इस राज्य के लिए और साथ ही, जबकि Django पंजीकरण का उपयोग कर था -

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

0

django-register-activate एक कार्यान्वित django-पंजीकरण के समान कार्यक्षमता। असल में यह उपयोगकर्ता साइन अप, ईमेल सत्यापन और सक्रियण, उपयोगकर्ता लॉगिन और उपयोगकर्ता लॉगआउट के लिए कोड प्रदान करता है।

यदि आपको अपने कोड को लागू करने के लिए उदाहरणों की आवश्यकता है, तो आप कुछ संकेत प्राप्त करने के लिए register_activate में views.py और form.py देख सकते हैं।

आशा है कि उत्तर मदद करता है। अगर आपको कोई शंका हो तो मुझे बतायें।