سؤال

أشعر بالفضول إذا كانت هناك طريقة لإرسال بريد إلكتروني نشط مع اسم المستخدم ، كلمة المرور باستخدام 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 للحصول على بعض التلميحات.

أتمنى أن تساعد الإجابة. اسمحوا لي أن أعرف إذا كان لديك المزيد من الأسئلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top