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

السؤال

نشر

لدي تطبيق مبني بإستخدام جانغو Django ومن المفترض أن يرسل بريدًا إلكترونيًا. ولكن ليس لدي حاليًا خادم للبريد mail server (في بيئة التطوير localhost) خاص بي. أحتاج اختبر ميزة إرسال البريد الإلكتروني محليًا local. هل هناك أي طريقة يمكنني من خلالها إرسال رسائل البريد الإلكتروني وحفظها إلى ملف على سبيل المثال بدلًا من إستخدام mail server حقيقي؟

Recommended Posts

  • 1
نشر

يمكنك ذلك أخي الكريم من خلال كتابة بيانات وهمية لجعل النظام يقوم بإختبار إرسال البريد الإلكتروني حيثُ يجب إضافة الأسطر التاليه في ملف settings.py

host: EMAIL_HOST
port: EMAIL_PORT
username: EMAIL_HOST_USER
password: EMAIL_HOST_PASSWORD
use_tls: EMAIL_USE_TLS
use_ssl: EMAIL_USE_SSL
timeout: EMAIL_TIMEOUT
ssl_keyfile: EMAIL_SSL_KEYFILE
ssl_certfile: EMAIL_SSL_CERTFILE

و ذلك بعد تعريف أن كافة القيم تساوي None من خلال الآتي في نفس الملف

class backends.smtp.EmailBackend(host=None, port=None, username=None, password=None, use_tls=None, fail_silently=False, use_ssl=None, timeout=None, ssl_keyfile=None, ssl_certfile=None, **kwargs)

كما يتعين عليك إضافة تعريف Email Back End في ملف settings.py

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

و إضافة السطر التالي إذا كنت تستخدم الـ console.log في عرض نتائج الإختبار

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

ثم إستخدام الكود التالي من أجل تعريف الإختبار في ملف الإختبار الخاص بك

from django.core import mail
connection = mail.get_connection() 
messages = get_notification_email()
connection.send_messages(messages)

 

ملحوظه : الأسطر التاليه يمكن تثبيتها و تعتبر إضافية في حال الحاجة إليها عند حدوث مشاكل في موجه الأوامر

python -m pip install aiosmtpd

python -m aiosmtpd -n -l localhost:8025

 

  • 1
نشر

يُمكنك حفظ الإيميلات التي تُرسلها داخل ملف بدل إستخدام خادم البريد (mail server) عن طريق إستعمال الخلفية (Email Backend) التالية:

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

والتي تسمح بتسجيل الإيميلات في ملف يتم حفظه في:

EMAIL_FILE_PATH = '/tmp/app-messages' # ضع هنا مكان حفظ الإيميلات

هذه الخيارات يتم إضافتها في ملف الإعدادات settings.py بدل القيم الإفتراضية التي يضعُها جانغو.

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...