اذهب إلى المحتوى

السؤال

نشر

السلام عليكم

انا قمت بوضع نموذج اتصال في views.py يقوم بارسال نموذج الاتصال الى بريدي الالكتروني

def contact(request):
    if request.method == 'POST':
            # Fetch data from Contact Us page
        name = request.POST.get('name', '')
        email = request.POST.get('email', '')
        subject = request.POST.get('subject', '')
        message = request.POST.get('message', '')

        # Save in database
        data = Contact(name=name, email=email, subject=subject, message=message)
        data.save()
        
        # Send an email
        send_mail(
            f'New Contact: {subject}',  # subject
            f'From: {name}, Email: {email}\n\nMessage:\n{message}',  # message
            email,  # from email
            ['email@gmail.com'],  # replace with your email
            fail_silently=False,
        )
        # Provide feedback to the user
        messages.success(request, 'Your message has been sent. Thank you!')
        return redirect('contact')  # Redirect back to the contact page or to a success page

    # If not a POST request, just render the empty contact page
    return render(request, 'pages/contact.html')

قمت بوضع الاعدادات في ملف settings.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER = 'email@gmail.com'
EMAIL_HOST_PASSWORD = '*********'

لكن يظهر لي هذا الخطأ

image.thumb.png.1f2fccc479aab6b782f9740f72377a00.pngimage.thumb.png.1f2fccc479aab6b782f9740f72377a00.png

Recommended Posts

  • 0
نشر

هل قمت بكتابة الإيميل والباسورد في الإعدادات كالتالي؟

EMAIL_HOST_USER = 'email@gmail.com'
EMAIL_HOST_PASSWORD = '*********'

ذلك غير صحيح، حيث يجب أن تكون إعدادات EMAIL_HOST_USER و EMAIL_HOST_PASSWORD في ملف Django settings.py تتطابق تمامًا مع اسم المستخدم وكلمة المرور لـ Gmail.

أيضًا يتطلب Gmail مصادقة ثنائية افتراضيًا وتستطيع تمكين الوصول إلى التطبيقات الأقل أمانًا في إعدادات Gmail ، مما سيسمح للتطبيقات الأقل أمانًا ، مثل Django ، بإرسال رسائل البريد الإلكتروني باستخدام حسابك في Gmail.

وكبديل أكثر أمانًا هو إنشاء كلمة مرور التطبيق لحسابك في Gmail، وكلمة مرور التطبيق هي رمز مكون من 16 حرفًا يمكنك استخدامه بدلاً من كلمة مرور Gmail العادية للتحقق من صحة Django، عليك بالتالي:

  • انتقل إلى إعدادات حساب Google خاصتك https://www.google.com/account/abou.
  • حدد "الأمان" من قائمة التنقل.
  • مرر لأسفل إلى "الوصول إلى التطبيق الأقل أمانًا" وانقر على "تشغيل".( ربما لا تكون هذه الخطوة ضرورية اعتمادًا على إعدادات Gmail الخاصة بك)
  • مرر لأسفل إلى "كلمات مرور التطبيق" وانقر على "إنشاء كلمة مرور جديدة للتطبيق".
  • حدد التطبيق الذي تريد إنشاء كلمة المرور الخاصة به (في هذه الحالة ، حدد "آخر").
  • أعطِ التطبيق اسمًا (وليكن ، "تطبيق Django") وانقر على "إنشاء".
  • سيقوم Google بإنشاء كلمة مرور مكونة من 16 حرفًا، ثم انسخ كلمة المرور هذه واستخدمها لإعداد EMAIL_HOST_PASSWORD في Django.
  • 0
نشر (معدل)

لا لم اقم بكتابتها بهذا الشكل و لكن لتجنب عرض الايميل و كلمة المرور

بتاريخ 13 دقائق مضت قال Mustafa Suleiman:
EMAIL_HOST_USER = 'email@gmail.com'
EMAIL_HOST_PASSWORD = '*********'

لم اجد "الوصول إلى التطبيق الأقل أمانًا" في حسابي  و حسب علمي بان قوقل اوقفت هذا الخيار

وايضا لم اجد "كلمات مرور التطبيق"

او ربما الاعدادات في حسابي مختلفة

تم التعديل في بواسطة Zx Zx2
  • 0
نشر

المشكلة التي تواجهك هي مشكلة SMTPAuthenticationError وهي تشير إلى أن اسم المستخدم وكلمة المرور التي قدمتها لبريدك الإلكتروني في ملف إعدادات Django الخاص بك غير صحيحة أو غير مصرح لها بإرسال الرسائل البريدية.

لهذا تأكد من إدخال عنوان البريد الإلكتروني الصحيح وكلمة المرور لحساب Gmail الذي ترغب في استخدامه لإرسال الرسائل البريدية وسيحلّ المشكل.

ويجب كذلك أن تقوم بتمكين الوصول للتطبيقات غير الآمنة في Gmail فقد قامت Google مؤخرا بتعطيل الوصول للتطبيقات غير الآمنة افتراضيا،لهذا الأمر ستحتاج إلى تمكينه لحساب Gmail الخاص بك لتكون قادرا على إرسال الرسائل البريدية من خلال Django.

كما يمكنك التحقق عبر هذا الرابط من توثيق دجانغو Django email.

بتاريخ 30 دقائق مضت قال Zx Zx2:

لا لم اقم بكتابتها بهذا الشكل و لكن لتجنب عرض الايميل و كلمة المرور

لم اجد "الوصول إلى التطبيق الأقل أمانًا" في حسابي  و حسب علمي بان قوقل اوقفت هذا الخيار

وايضا لم اجد "كلمات مرور التطبيق"

او ربما الاعدادات في حسابي مختلفة

صحيح، جوجل كانت قد قامت بإزالة ميزة الوصول إلى التطبيق الأقل أمانا، لكن يوجد حل بديل يمكنك تجربته، أولا:

انتقل إلى ر حساب جوجل الخاص بك عبر هذا الرابط.

ثم في قسم الأمان، انتقل إلى كلمة المرور التطبيق، مع التأكد من تفعيل التحقق الثنائي.

 

ثم Capturedcran2024-03-26143504.thumb.png.4b11251ff5cf870aa39b90fd609af6d1.pngثم قم بالذهاب إلى App Password 

هي موجودة في الصفحة الثانية، لكن يمكنك الوصول إليها من خلال البحث عنها في خانة البحث وستظهر لك مباشرة، ثم سيطلب منك اختيار التطبيق والجهاز الذي تريد توليد كلمة المرور التطبيق له، ثم قم بتعيينه على الموقع، وانقر على توليد. سيتم توليد كلمة مرور.

Capturedcran2024-03-26144216.thumb.png.438c66d04789ad632aebdd1e60fcb838.png

 

ثم قم بنسخ هذه الكلمة المرور واستخدمها في إرسال الرسائل الإلكترونية.

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...