منصوبے کے بارے میں
sendsmtp ایک چھوٹا کمانڈ لائن SMTP کلائنٹ ہے جسے خالص Python میں بغیر کسی تھرڈ پارٹی ڈیپینڈینسی کے نافذ کیا گیا ہے۔ یہ ایک UTF-8 text/plain میل پیغام تیار کرتا ہے اور اسے SMTP سرور کو بھیجتا ہے، جس کی وجہ سے اسے اسکرپٹڈ نوٹیفیکیشنز، بلڈ رپورٹس یا شیل سے کمانڈ آؤٹ پٹ کو ای میل میں بھیجنے کے لیے استعمال کیا جا سکتا ہے۔
انسٹالیشن اور ضروریات
پیکیج کو pip (python3 -m pip install --user --upgrade sendsmtp) کے ذریعے انسٹال کیا جاتا ہے اور اس کے لیے Python 3.11 یا اس سے نئے ورژن کی ضرورت ہوتی ہے۔
بنیادی استعمال
کمانڈ تین پوزیشنل دلائل (positional arguments) لیتی ہے: HOST (SMTP سرور کا ہوسٹ نیم یا IP)، FROM (جو SMTP اینولپ سینڈر اور From ہیڈر دونوں کے طور پر استعمال ہوتا ہے) اور TO (ایک ایڈریس یا کومہ سے الگ کیے گئے کئی ایڈریسز، جن کے گرد کومہ کے ساتھ کوئی جگہ نہ ہو)۔ ایک عام کال -m کے ساتھ باڈی اور -s کے ساتھ سبجیکٹ بھیجتی ہے، اور جب سرور پیغام قبول کر لیتا ہے تو کامیابی کی اطلاع دیتی ہے۔
پیغام کی باڈی کے ذرائع
باڈی تین جگہوں سے آ سکتی ہے۔ -m/--message آپشن اسے ان لائن فراہم کرتا ہے۔ -i/--input آپشن اسے فائل پاتھ سے پڑھتا ہے اور --message پر فوقیت رکھتا ہے؛ اگر پاتھ موجودہ فائل نہیں ہے تو اس آپشن کو نظر انداز کر دیا جاتا ہے اور باڈی --message یا stdin پر واپس چلی جاتی ہے۔ اگر دونوں آپشنز نہیں دیے گئے، تو باڈی stdin سے پڑھی جاتی ہے: پائپڈ ان پٹ کو EOF تک پڑھا جاتا ہے، جبکہ ایک انٹرایکٹو ٹرمینل ایک پرامپٹ کو متحرک کرتا ہے جو اس وقت تک لائنیں پڑھتا ہے جب تک کہ صرف EOF پر مشتمل لائن نہ آ جائے۔
سبجیکٹ کی ہینڈلنگ
--subject/-s واضح طور پر سبجیکٹ سیٹ کرتا ہے۔ اگر اسے چھوڑ دیا جائے اور باڈی Subject: لائن سے شروع ہو، تو اس لائن کو باڈی سے ہٹا دیا جاتا ہے اور اسے سبجیکٹ کے طور پر استعمال کیا جاتا ہے۔
کنکشن سیکیورٹی اور پورٹس
کلائنٹ تین موڈز کو سپورٹ کرتا ہے۔ Plain SMTP ڈیفالٹ طور پر پورٹ 25 استعمال کرتا ہے۔ --starttls سادہ متن میں منسلک ہوتا ہے اور STARTTLS ایکسٹینشن کا استعمال کرتے ہوئے کنکشن کو اپ گریڈ کرتا ہے، جس کی ڈیفالٹ پورٹ 587 ہے۔ -t/--tls پہلے بائٹ سے ہی implicit TLS (SMTPS) کا استعمال کرتا ہے، جس کی ڈیفالٹ پورٹ 465 ہے۔ دونوں TLS آپشنز باہمی طور پر خصوصی ہیں، اور -p/--port کسی بھی موڈ میں ڈیفالٹ پورٹ کو تبدیل کر سکتا ہے۔
تصدیق (Authentication)
-u/--username SMTP AUTH کو فعال کرتا ہے؛ اس کے بغیر کوئی AUTH کوشش نہیں کی جاتی۔ اگر --password کے بغیر صارف نام دیا جائے، تو پاس ورڈ انٹرایکٹو طور پر مانگا جاتا ہے اور اسکرین پر نظر نہیں آتا۔ دستاویزات میں ذکر ہے کہ یہ بہتر ہے کیونکہ کمانڈ لائنز دوسرے پراسیسز کو نظر آ سکتی ہیں اور شیل ہسٹری میں ریکارڈ ہو جاتی ہیں۔ تصدیق کی ناکامی رن کو ختم کر دیتی ہے اور پیغام نہیں بھیجا جاتا۔
TO کے علاوہ وصول کنندگان
-c/--cc کاربن کاپی وصول کنندگان کو شامل کرتا ہے جو CC ہیڈر میں ظاہر ہوتے ہیں اور پیغام وصول کرتے ہیں۔ -b/--bcc بلائنڈ کاربن کاپی وصول کنندگان کو شامل کرتا ہے جو پیغام تو وصول کرتے ہیں لیکن کسی ہیڈر میں درج نہیں ہوتے۔ دونوں کومہ سے الگ کیے گئے ایڈریس لسٹ قبول کرتے ہیں۔
تشخیصی معلومات (Diagnostics)
-v/--verbose SMTP ڈائیلاگ کو stderr پر پرنٹ کرتا ہے، کنکشن اور تصدیق کے مراحل کی رپورٹ کرتا ہے، ان ایڈریسز کی فہرست دیتا ہے جن تک پیغام پہنچایا گیا، اور ناکامی کی صورت میں، ایک لائن کی غلطی کے بجائے مکمل اسٹیک ٹریس دکھاتا ہے۔ اس کے بغیر، ناکامیوں پر صرف ایک لائن کا ایرر میسج آتا ہے۔
پیغام کے ہیڈرز اور ایگزٹ کوڈز
تیار کردہ پیغامات میں 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.