عن المشروع
sendsmtp هو عميل SMTP صغير لسطر الأوامر مُنفّذ بلغة بايثون البحتة بدون أي تبعيات خارجية. يقوم بإنشاء رسالة بريد إلكتروني نصية بتنسيق UTF-8 وتسليمها إلى خادم SMTP، مما يجعله قابلًا للاستخدام للإشعارات النصية المكتوبة، أو تقارير البناء، أو توجيه مخرجات الأوامر إلى بريد إلكتروني من واجهة الأوامر.
التثبيت والمتطلبات
يتم تثبيت الحزمة باستخدام pip (python3 -m pip install --user --upgrade sendsmtp) وتتطلّب بايثون 3.11 أو أحدث.
الاستخدام الأساسي
يقبل الأمر ثلاث وسائط موضعية: HOST (اسم المضيف أو عنوان IP لخادم SMTP)، وFROM (يستخدم كمُرسِل مظروف SMTP ورأس From)، وTO (عنوان واحد أو عدة عناوين تفصل بينها فواصل بدون مسافات حول الفواصل). يرسل الاستخدام النموذجي النص الأساسي ضمنيًا باستخدام -m والموضوع باستخدام -s، ويبلغ عن النجاح عندما يقبل الخادم الرسالة.
مصادر نص الرسالة
يمكن أن يأتي النص الأساسي من ثلاثة أماكن. يوفر خيار -m/--message النص ضمنيًا. يقرأ خيار -i/--input النص من مسار ملف وله الأولوية على --message؛ وإذا لم يكن المسار ملفًا موجودًا، يتم تجاهل الخيار ويعود النص الأساسي إلى --message أو المدخلات القياسية. إذا لم يتم توفير أي من الخيارين، يتم قراءة النص الأساسي من المدخلات القياسية: تتم قراءة الإدخال المُوجَّه حتى نهاية الملف EOF، بينما يُشغِّل الطرفية التفاعلية موجهًا يقرأ الأسطر حتى يظهر سطر يحتوي على EOF فقط.
التعامل مع الموضوع
يقوم خيار --subject/-s بتعيين الموضوع صراحةً. إذا تم إغفاله وكان النص الأساسي يبدأ بسطر Subject:، يتم إزالة هذا السطر من النص الأساسي واستخدامه كموضوع بدلاً من ذلك.
أمان الاتصال والمنافذ
يدعم العميل ثلاثة أوضاع. يتم تعيين SMTP العادي افتراضيًا على المنفذ 25. يتصل --starttls بنص عادي ويقوم بترقية الاتصال باستخدام امتداد STARTTLS، مع التعيين افتراضيًا على المنفذ 587. يستخدم -t/--tls نظام TLS الضمني من البايت الأول (SMTPS)، مع التعيين افتراضيًا على المنفذ 465. خيارا TLS متبادلان، ويقوم -p/--port بتجاوز المنفذ الافتراضي في أي وضع.
المصادقة
يمكّن خيار -u/--username مصادقة SMTP؛ وبدونه لا يتم إجراء أي محاولة مصادقة. إذا تم توفير اسم مستخدم بدون --password، تتم مطالبة المستخدم بكلمة المرور تفاعليًا دون صدى (إظهار الأحرف). تشير الوثائق إلى أن هذا هو الأفضل لأن سطر الأوامر قد يكون مرئيًا للعمليات الأخرى ويتم تسجيله في سجل الصدفة (shell history). تؤدي إخفاقات المصادقة إلى إيقاف التشغيل ولا يتم إرسال الرسالة.
المستلمون بخلاف TO
يضيف خيار -c/--cc مستلمي نسخة الكربون الذين يظهرون في ترويسة CC ويتلقون الرسالة. يضيف خيار -b/--bcc مستلمي نسخة الكربون المخفية الذين يتلقون الرسالة ولكنهم غير مدرجين في أي ترويسة. يقبل كلاهما قوائم عناوين تفصل بينها فواصل.
التشخيص
يطبع خيار -v/--verbose حوار SMTP إلى stderr، ويبلغ عن خطوات الاتصال والمصادقة، ويسرد العناوين التي تم تسليم الرسالة إليها، وعند الفشل، يُظهر تتبعكدس الأخطاء الكامل (stack trace) بدلاً من خطأ مكون من سطر واحد. بدونه، ينتج عن الفfailures رسالة خطأ من سطر واحد.
ترويسات الرسائل ورموز الخروج
تحمل الرسائل المُمنشأة ترويسات From، وTo، وSubject، وCC (فقط مع --cc)، وترويسة X-Mailer: sendsmtp. يعني رمز الخروج 0 أن الخادم قَبِل الرسالة لكل مستلم، ويشير الرقم 1 إلى حدوث خطأ أو رفض مستلم واحد على الأقل، ويشير الرقم 130 إلى إشارة مقاطعة باستخدام Ctrl-C.
الترخيص
تم إصدار المشروع بموجب ترخيص MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.