یہ ماڈیول کیا کرتا ہے #
سرور پر بہت سی چیزیں آپ کو ای میل کے ذریعے مطلع کرتی ہیں: ختم ہونے کو تیار کوئی سرٹیفکیٹ، بھرتی جاتی کوئی ڈسک، رات کے کسی کام کی رپورٹ۔ لیکن ابھی نصب کیا گیا سرور یہ نہیں جانتا کہ وہ میل کیسے بھیجے — یا وہ اسے براہِ راست پہنچانے کی کوشش کرتا ہے اور اسپیم فولڈر میں جا پہنچتی ہے، اگر سرے سے مسترد نہ ہو جائے۔
smtp ماڈیول اسے میزبان کی باہر جانے والی میل کو ایک اسمارٹ ہوسٹ (ایک ایسا ریلے جو واقعی پہنچانے کا مجاز ہو: Amazon SES، کوئی کارپوریٹ میل سرور، آپ کا فراہم کنندہ…) کے مقابل کنفیگر کر کے حل کرتا ہے۔ یہ postfix کو ایسے ایڈجسٹ کرتا ہے کہ وہ سسٹم کی تمام میل اُس اسمارٹ ہوسٹ کو فارورڈ کرے، پاس ورڈ کو محفوظ طریقے سے ذخیرہ کرتا ہے، بھیجنے والے کو دوبارہ لکھتا ہے تاکہ وہ ایک درست ہو، اور آپ کو بھیجنے کی جانچ کرنے دیتا ہے تاکہ تصدیق ہو کہ وہ پہنچتی ہے — اگر کچھ ناکام ہو تو اصل خرابی بتاتا ہے۔
اپنے اسمارٹ ہوسٹ کی تفصیلات تیار رکھیں: host، port (عموماً 587)، اور اسناد اگر توثیق درکار ہو۔ پاس ورڈ کمانڈ لائن پر نہیں دیا جاتا: یہ stdin سے یا سیکرٹس اسٹور سے پڑھا جاتا ہے، اس لیے یہ آپ کی ہسٹری میں کبھی نہیں آتا۔
عام کام #
جو آپ کرنا چاہتے ہیں اسے منتخب کریں۔ ہر ترکیب کمانڈ پہلے سے لکھی ہوئی لاتی ہے — بس اپنا اسمارٹ ہوسٹ اور بھیجنے والا ڈال دیں، اور کاپی کریں دبائیں۔
1
میل ریلے کنفیگر کریں
سرور کو اپنے اسمارٹ ہوسٹ کی طرف اشارہ کریں تاکہ میل واقعی باہر جائے۔
اپنے سرور سے ubuntu صارف کے ساتھ SSH کے ذریعے جڑیں۔
اپنے اسمارٹ ہوسٹ کی تفصیلات کے ساتھ کمانڈ چلائیں۔ پاس ورڈ stdin کے ذریعے مانگا جاتا ہے، اس لیے یہ آپ کی ہسٹری میں کبھی نہیں آتا:
$ sudo imaxe smtp configure \
--host email-smtp.eu-west-1.amazonaws.com \
--user AKIAIOSFODNN7EXAMPLE \
--from [email protected]اگر آپ کے اسمارٹ ہوسٹ کو توثیق درکار نہیں، تو --user چھوڑ دیں۔ مختلف پورٹ یا TLS موڈ کے لیے، --port یا --no-tls شامل کریں۔
[email protected] پر دوبارہ لکھا گیا ہے۔ ٹیسٹ ای میل بھیجیں ترکیب کے ساتھ جاری رکھیں۔2
ٹیسٹ ای میل بھیجیں
الرٹس پر بھروسہ کرنے سے پہلے تصدیق کریں کہ پیغام باہر جاتا اور پہنچتا ہے۔
ایسے پتے پر ایک ٹیسٹ ای میل بھیجیں جہاں آپ اسے دیکھ سکیں:
$ sudo imaxe smtp test --to [email protected]اگر آپ --to چھوڑ دیں، تو یہ کنفیگر شدہ بھیجنے والے کو بھیجی جاتی ہے۔ ترسیل کی تصدیق کے لیے اپنا اِن باکس (اور اسپیم فولڈر) دیکھیں۔
3
میل کی حالت دیکھیں
ایک نظر میں جانچیں کہ آیا ریلے کنفیگر اور فعال ہے۔
ریلے، اسمارٹ ہوسٹ، بھیجنے والے اور MTA کی حالت کا خلاصہ:
$ sudo imaxe smtp statusکسی اسکرپٹ یا ڈیش بورڈ کے لیے درکار ہے؟ مشین کے پڑھنے کے قابل آؤٹ پٹ کے لیے --json شامل کریں:
$ sudo imaxe smtp status --json4
مؤثر کنفیگریشن دیکھیں
پاس ورڈ ظاہر کیے بغیر فعال ترتیبات جانچیں۔
دکھاتا ہے کہ اصل میں کون سا host، port، user، بھیجنے والا اور TLS موڈ زیرِ استعمال ہے (پاس ورڈ کبھی پرنٹ نہیں ہوتا):
$ sudo imaxe smtp show5
ریلے ہٹائیں
فارورڈنگ بند کریں اور postfix کو اس کی پچھلی حالت میں لوٹا دیں۔
باہر جانے والی میل کے ریلے کو بند کریں اور بنیادی postfix کنفیگریشن بحال کریں:
$ sudo imaxe smtp removeconfigure کے ساتھ اسے دوبارہ ترتیب دے سکتے ہیں۔سب سے عام وجہ یہ ہے کہ بھیجنے والا اسمارٹ ہوسٹ پر تصدیق شدہ نہیں (SES کو ڈومین یا --from پتے کی تصدیق درکار ہوتی ہے)، یا اسناد غلط ہیں۔ imaxe smtp test چلائیں: یہ اصل MTA خرابی لوٹاتا ہے تاکہ آپ ٹھیک ٹھیک جان لیں کہ کیا ایڈجسٹ کرنا ہے۔
نحو #
imaxe smtp <subcomando> [--host HOST] [--from CORREO] [flags]تمام ذیلی کمانڈز کو root کے مراعات درکار ہیں (sudo استعمال کریں) کیونکہ وہ postfix کنفیگریشن کو چھوتی ہیں، /etc/imaxe/ میں لکھتی ہیں اور سسٹم سروسز کو دوبارہ لوڈ کرتی ہیں۔ اسمارٹ ہوسٹ کا پاس ورڈ کبھی فلیگ کے طور پر نہیں دیا جاتا: یہ stdin سے یا سیکرٹس اسٹور سے پڑھا جاتا ہے۔ scripting کے لیے موزوں مشین کے پڑھنے کے قابل آؤٹ پٹ کے لیے status یا show میں --json شامل کریں۔
ذیلی کمانڈز #
| ذیلی کمانڈ | یہ کیا کرتا ہے | متعلقہ فلیگز |
|---|---|---|
| configure | باہر جانے والی میل کے ریلے کو ایک اسمارٹ ہوسٹ کے مقابل کنفیگر کرتا ہے۔ پاس ورڈ secrets/stdin سے پڑھا جاتا ہے۔ | --host, --port, --user, --from, --tls / --no-tls |
| test | ایک ٹیسٹ ای میل بھیجتا ہے اور ناکام ہونے پر اصل MTA خرابی بتاتا ہے۔ | --to |
| status | حالت: ریلے کنفیگر شدہ، اسمارٹ ہوسٹ، بھیجنے والا اور MTA فعال۔ | --json |
| show | مؤثر کنفیگریشن دکھاتا ہے، پاس ورڈ ظاہر کیے بغیر۔ | --json |
| remove | ریلے کو بند کرتا ہے اور postfix بحال کرتا ہے۔ | — |
آرگیومنٹس اور فلیگز #
| فلیگ | قسم | طے شدہ | تفصیل |
|---|---|---|---|
| --host لازمی | string | — | میل فارورڈ کرنے کے لیے SMTP اسمارٹ ہوسٹ (مثلاً email-smtp.eu-west-1.amazonaws.com)۔ configure کے لیے لازمی۔ |
| --port | int | 587 | اسمارٹ ہوسٹ کا SMTP پورٹ۔ |
| --user | string | — | توثیق کے لیے SMTP صارف۔ اگر چھوڑ دیا جائے، تو ریلے بغیر توثیق کے کنفیگر ہوتا ہے۔ |
| --from | string | — | تمام پیغامات کے بھیجنے والے کو دوبارہ لکھتا ہے (sender_canonical)۔ اسمارٹ ہوسٹ پر تصدیق شدہ پتہ استعمال کرنے کے لیے مفید۔ |
| --tls / --no-tls | bool | --tls | اسمارٹ ہوسٹ سے کنکشن پر TLS نافذ کرتا ہے (طے شدہ)۔ --no-tls اسے غیر فعال کر دیتا ہے۔ |
| --to | string | بھیجنے والا | test میں: ٹیسٹ ای میل کا وصول کنندہ۔ طے شدہ طور پر کنفیگر شدہ بھیجنے والا۔ |
| --json | bool | false | status/show میں، نتیجہ stdout پر JSON کے طور پر جاری کرتا ہے۔ |
کوئی --password آپشن نہیں ہے۔ سند configure کے دوران stdin سے یا سیکرٹس اسٹور سے (password_secret، طے شدہ طور پر smtp) پڑھی جاتی ہے، اس لیے یہ آپ کی ہسٹری یا پروسیس ٹیبل میں کبھی ظاہر نہیں ہوتی۔
فائلیں اور راستے #
| راستہ | مواد |
|---|---|
| /etc/imaxe/smtp.yml | ماڈیول کی کنفیگریشن: host، port، TLS، user، بھیجنے والا اور پاس ورڈ سیکرٹ کا حوالہ۔ |
| /etc/postfix/main.cf | Postfix کنفیگریشن جسے ماڈیول فارورڈنگ کے لیے ایڈجسٹ کرتا ہے (relayhost، sender canonical…)۔ |
| /var/log/mail.log | Postfix لاگ جس میں ہر ترسیل کی کوشش اور مسترد ہونے کی وجہ ہوتی ہے۔ |
smtp.yml کی مثال:
enabled: true
host: email-smtp.eu-west-1.amazonaws.com
port: 587
tls: true
username: AKIAIOSFODNN7EXAMPLE
from: [email protected]
password_secret: smtpایگزٹ کوڈز اور لاگز #
ہر عملدرآمد ایک کوڈ لوٹاتا ہے جسے آپ echo $? کے ساتھ جانچ سکتے ہیں — اسکرپٹس میں سلسلہ بنانے کے لیے مفید:
test میں، ای میل ترسیل کے لیے قبول کر لی گئی۔بھیجنے کو ڈی بگ کرتے وقت میل لاگ کو لائیو دیکھیں:
$ sudo tail -f /var/log/mail.log
$ sudo imaxe smtp test --to [email protected]مسائل کا حل #
| علامت | ممکنہ وجہ | حل |
|---|---|---|
| AUTH (کوڈ 4) نکلتا ہے | اسمارٹ ہوسٹ کا صارف یا پاس ورڈ غلط۔ | --user جانچیں اور configure دوبارہ چلائیں، پاس ورڈ stdin کے ذریعے دوبارہ داخل کریں۔ |
| SEND (کوڈ 5) نکلتا ہے، بھیجنے والا مسترد | --from پتہ اسمارٹ ہوسٹ پر تصدیق شدہ نہیں (SES میں عام)۔ | فراہم کنندہ کے ساتھ ڈومین یا پتے کی تصدیق کریں اور test دوبارہ آزمائیں۔ |
| CONFIG (کوڈ 3) نکلتا ہے | اس میزبان پر ابھی ریلے کنفیگر نہیں ہے۔ | اپنے اسمارٹ ہوسٹ کی تفصیلات کے ساتھ imaxe smtp configure چلائیں۔ |
| میل باہر جاتی ہے مگر اسپیم میں جا پہنچتی ہے | بھیجنے والے کے ڈومین پر SPF/DKIM ہم آہنگی غائب ہے۔ | --from ڈومین کے لیے میل فراہم کنندہ کے ریکارڈز ترتیب دیں۔ |
کیا میل ماڈیول کے ساتھ اٹک گئے ہیں؟
«imaxe <module> status --json» کے آؤٹ پٹ کے ساتھ ہمیں لکھیں اور ہم فوراً جواب دیں گے۔