python - Django के साथ अमेज़ॅन एसईएस एसएमटीपी




smtp amazon-web-services (4)

Django 1.7 में, आप बिना किसी तृतीय पक्ष लाइब्रेरी के एसएसएल के साथ ईमेल भेज सकते हैं।

EMAIL_USE_SSL = True

https://docs.djangoproject.com/en/1.7/ref/settings/#std:setting-EMAIL_USE_SSL

मैं डीजेगो 1.3.1 के साथ एसईएस के लिए अमेज़ॅन की नई एसएमटीपी सेवा का उपयोग करने की कोशिश कर रहा हूं लेकिन मुझे बहुत भाग्य नहीं है।

मैंने अपना एसईएस एसएमटीपी प्रमाण-पत्र बनाया है और यह मेरी सेटिंग्स में है:

EMAIL_USE_TLS = True
EMAIL_HOST = 'email-smtp.us-east-1.amazonaws.com'
EMAIL_HOST_USER = 'my-smtp-user'
EMAIL_HOST_PASSWORD = 'my-smtp-password'
EMAIL_PORT = 465

फिर मैं एक परीक्षण ईमेल (सत्यापित ईमेल पते से) भेजने का प्रयास करता हूं:

from django.core.mail import send_mail

send_mail('Test subject', 'This is the body', '[email protected]',['[email protected]'], fail_silently=False)

लेकिन मुझे निम्न त्रुटि मिलती है:

SMTPServerDisconnected: Connection unexpectedly closed

मैं सर्वर से टेलनेट कर सकता हूं:

telnet email-smtp.us-east-1.amazonaws.com 465

कोई विचार?

धन्यवाद, जी


मैंने 3 घंटे की तरह अपना सिर तोड़ दिया। S.starttls () और फिर s.login () के साथ smtplib के बारे में आपका समाधान एक ही फाइल में सभी ईमेल प्रमाण-पत्रों के साथ एक पायथन प्रोग्राम के साथ अच्छा है। लेकिन मुझे नहीं लगता कि यह Django में ऐसा करने का एक साफ तरीका है। तो मैंने अंत में इसे समझ लिया। भले ही आपकी मशीन 32 या 64 बिट हो। बस निम्न चरणों का पालन करें:

  1. बोटो स्थापित करें

    पाइप इंस्टॉल - अपग्रेड बोटो

  2. Django-ses स्थापित करें

    पाइप स्थापित django-ses

  3. आपकी djando सेटिंग्स.py फ़ाइल में निम्न जानकारी अद्यतन करें।

    EMAIL_BACKEND = 'django_ses.SESBackend'
    AWS_ACCESS_KEY_ID = 'your_username'
    AWS_SECRET_ACCESS_KEY = 'your_password'

  4. अपनी django फ़ाइल में जहां आप एक ईमेल भेजना चाहते हैं

    django.core.mail आयात send_mail से
    send_mail ('टेस्ट विषय', 'यह शरीर है', '[email protected]', ['[email protected]'], fail_silently = झूठा)


सिफारिशों के लिए सभी को धन्यवाद लेकिन मुझे अंत में एक बहुत ही सरल समाधान मिला जो मुझे Django के अंतर्निहित मेल कक्षाओं का उपयोग करने की अनुमति देगा ताकि मैं अब भी अपनी व्यवस्थापक त्रुटि ईमेल रिपोर्ट आदि प्राप्त कर सकूं।

इस छोटी सुंदरता के लिए धन्यवाद मैं बिना किसी समस्या के एसईएस एसएमटीपी का उपयोग करने में सक्षम था:

https://github.com/bancek/django-smtp-ssl

डाउनलोड करें और इंस्टॉल करें (python setup.py इंस्टॉल करें)

फिर इस नए ईमेल बैकएंड का उपयोग करने के लिए बस अपनी सेटिंग्स बदलें:

EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'

शेष सेटिंग्स सामान्य के अनुसार हैं:

EMAIL_HOST = 'email-smtp.us-east-1.amazonaws.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = 'my_smtp_username'
EMAIL_HOST_PASSWORD = 'my_smtp_password'
EMAIL_USE_TLS = True

अच्छा लगा।

जी






amazon-ses