أرسل تنشيط الأوسط مع تسجيل Django
-
04-10-2019 - |
سؤال
أشعر بالفضول إذا كانت هناك طريقة لإرسال بريد إلكتروني نشط مع اسم المستخدم ، كلمة المرور باستخدام Django-Registration. أولاً ، فكرت في تعديل نموذج التسجيل ولكني بحاجة إلى بعض الأمثلة.
المحلول
Django-registration يستخدم الرمز التالي ، داخليًا ، للتعامل مع رسائل البريد الإلكتروني الإرسال:
send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [self.user.email])
إذا كنت تريد العمل ، فسيتعين عليك تحديد القيمة default_from_email في الإعدادات الخاصة بك.
أيضا ، لاحظ ما يلي:
يتم إرسال البريد باستخدام مضيف SMTP والمنفذ المحدد في إعدادات Email_Host و Email_port. يتم استخدام إعدادات Email_host_user و email_host_password ، إذا تم تعيينها ، للمصادقة على خادم SMTP ، ويتحكم إعداد Email_use_TLS سواء تم استخدام اتصال آمن.
لذلك ، لإعطاء مثال ، إليك ما استخدمته في ملف Settings.py لاستخدام حساب Gmail:
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 465
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'my@gmail.com'
EMAIL_HOST_PASSWORD = 'my_emails_password'
Django-registration يجب بعد ذلك أن تكون قادرة على إرسال رسائل البريد الإلكتروني.
نصائح أخرى
البريد الإلكتروني _port = 465 كان يعمل قبل عام. تحتاج الآن إلى استخدام المنفذ 587 مع Gmail. السبب: Django لا يدعم SMTP مع SSL من البداية. يتم دعم أمر StartTLS فقط بعد إعداد اتصال النص العادي. Gmail ، ومع ذلك ، لم يعد يدعم هذا الخيار على المنفذ 465.
امل ان يساعد هذا احد. بعد استكشاف الأخطاء وإصلاحها لمدة نصف ساعة ، أدركت أنه كان عليّ أن أذكر هذا أيضًا بشكل صريح أثناء استخدام تسجيل Django -
البريد الإلكتروني _backend = 'django.core.mail.backends.smtp.emailbackend'
Django-register-active نفذت وظيفة مماثلة مثل التسجيل django. في الأساس ، يوفر رمزًا لتسجيل المستخدم ، والتحقق من البريد الإلكتروني والتنشيط ، وتسجيل الدخول إلى المستخدم وتسجيل المستخدم.
إذا كنت بحاجة إلى أمثلة لتنفيذ التعليمات البرمجية الخاصة بك ، فيمكنك التحقق من views.py و forms.py في register_activate للحصول على بعض التلميحات.
أتمنى أن تساعد الإجابة. اسمحوا لي أن أعرف إذا كان لديك المزيد من الأسئلة.