انا اعمل على سكريبت ارسال ايميل عن طريق البايثون.
ويظهر لى هذه المشكلة
انا اعمل على سكريبت ارسال ايميل عن طريق البايثون.
ويظهر لى هذه المشكلة
لو تابعت Stack Trace في الصورة الثانية تجد ان المشكلة في السطر 11 :
server = smtplib.SMTP('mail')
لو تمعنت مرة أخرى في Stack Trace ستجد انها تصل إلى مكتبة Socket وبالتحديد دالة gettaddrinfo والمشكلة تحديدا هي في Create Connection هذا يعني انك سيرفر الايميل الذي تستخدمه غير موجود اصلا او ان معلومات الاتصال به خاطئة.
بالرجوع إلى السطر 11. انت وضعت سيرفر الايميل الخاص بـ SMTP كلمة mail. يجب ان تعين السيرفر والبورت بطريقة صحيحة كما يجب ان تقوم بتحقيق الدخول إلى السيرفر Authentication عبر حساب بريدك الالكتروني الذي سترسل منه اذا استدعى الأمر.
لتحسين الكود يفضل يفضل أن تستخدم Try and Catch مع الجزئية الخاصة بالاتصال بمخدم البريد الالكتروني لأن المشكلة هنا هي استثناء Exception وليس خطأ Error. وهذه صيغة مقترحة :
try:
server = smtplib.SMTP('mail')
except Exception, e:
logger.error(str(e))
سيقوم البرنامج بمحاولة تنفيذ الكود واذا فشل سيقوم بكتابة رسالة الاستثناء او السبب في Console.
التعليقات