ڈوئل SMTP فارورڈنگ سیٹ اپ کرنا
ایک جیسے صارف اکاؤنٹس کے ساتھ متعدد ای میل سرورز کا انتظام کرنا مشکل ہوسکتا ہے۔ اس منظر نامے میں، جب example.com پر کسی صارف کو ای میل بھیجی جاتی ہے، تو اسے جیمز اور ون میل سرورز دونوں کے ذریعے موصول ہونے کی ضرورت ہوتی ہے، اس بات کو یقینی بناتے ہوئے کہ ای میل کے مواد میں کوئی تبدیلی نہ ہو۔
عام حل، جیسے کہ DNS میں متعدد MX ریکارڈز کو ترتیب دینا، کم پڑتے ہیں کیونکہ وہ ایک وقت میں مثال کے طور پر صرف ایک سرور پر بھیج سکتے ہیں۔ مقامی سٹوریج کے بغیر ای میلز کو دونوں سرورز پر فارورڈ کرنے کے لیے پوسٹ فکس کا استعمال پیچیدہ ثابت ہوا ہے، جس کی وجہ سے smtplib کے ساتھ اسکرپٹنگ جیسے حل نکلتے ہیں، جو کہ قابل اعتماد نہیں ہو سکتے۔ آئیے بہتر متبادل تلاش کریں۔
کمانڈ | تفصیل |
---|---|
import smtplib | Python کا استعمال کرتے ہوئے ای میلز بھیجنے کے لیے سادہ میل ٹرانسفر پروٹوکول لائبریری درآمد کرتا ہے۔ |
import sys | سسٹم کے مخصوص پیرامیٹرز اور فنکشنز ماڈیول کو درآمد کرتا ہے، جو کمانڈ لائن آرگومنٹس حاصل کرنے کے لیے استعمال ہوتا ہے۔ |
from email.mime.text import MIMEText | متن پر مبنی ای میل پیغامات بنانے کے لیے MIMEText کلاس درآمد کرتا ہے۔ |
from email.mime.multipart import MIMEMultipart | ملٹی پارٹ ای میل پیغامات بنانے کے لیے ایم آئی ایم ای ملٹی پارٹ کلاس درآمد کرتا ہے۔ |
msg.attach(MIMEText('text', 'plain')) | ای میل پیغام کے ساتھ ایک سادہ متن کا حصہ منسلک کرتا ہے۔ |
with smtplib.SMTP(server) as smtp | SMTP سرور سے ایک کنکشن کھولتا ہے اور یہ یقینی بناتا ہے کہ ای میل بھیجنے کے بعد یہ مناسب طریقے سے بند ہے۔ |
postmap /etc/postfix/transport | ٹرانسپورٹ میپ فائل سے ایک بائنری ڈیٹا بیس تیار کرتا ہے، جسے پوسٹ فکس میل روٹنگ کے لیے استعمال کرتا ہے۔ |
systemctl reload postfix | کسی بھی تبدیلی کو لاگو کیے بغیر، سروس کو روکے بغیر پوسٹ فکس کنفیگریشن کو دوبارہ لوڈ کرتا ہے۔ |
پوسٹ فکس اور ازگر کے انٹیگریشن کو سمجھنا
فراہم کردہ اسکرپٹس کو ای میلز کو دو SMTP سرورز پر فارورڈ کرنے کے لیے ڈیزائن کیا گیا ہے، اس بات کو یقینی بناتے ہوئے کہ دونوں سرورز کو ایک ہی ای میل موصول ہو۔ ازگر اسکرپٹ، multi_forward.py، کا استعمال کرتا ہے۔ import smtplib ای میل بھیجنے کو سنبھالنے کے لیے لائبریری۔ یہ درآمد کرتا ہے۔ sys کمانڈ لائن دلائل حاصل کرنے کے لیے، جیسے بھیجنے والا اور وصول کنندہ۔ سکرپٹ کا استعمال کرتے ہوئے ای میل کی تعمیر from email.mime.text import MIMEText اور from email.mime.multipart import MIMEMultipart ای میل باڈی بنانے اور منسلک کرنے کے لیے۔ اس کے بعد یہ SMTP سرورز کی فہرست پر اعادہ کرتا ہے اور استعمال کرتے ہوئے ہر ایک کو ای میل بھیجتا ہے۔ with smtplib.SMTP(server) as smtp.
پوسٹ فکس کی طرف، ترتیب میں ترمیم کرنا شامل ہے۔ /etc/postfix/master.cf کسٹم ٹرانسپورٹ سروس کی وضاحت کے لیے فائل، multi_forward، جو Python اسکرپٹ استعمال کرتا ہے۔ دی /etc/postfix/main.cf نقل و حمل کے نقشے کو شامل کرنے کے لیے فائل کو اپ ڈیٹ کیا گیا ہے، جس میں اس کی وضاحت کی گئی ہے۔ /etc/postfix/transport. حکم postmap /etc/postfix/transport نقل و حمل کے نقشے سے ایک بائنری ڈیٹا بیس بناتا ہے، اور systemctl reload postfix پوسٹ فکس سروس کو روکے بغیر کنفیگریشن تبدیلیاں لاگو کرتا ہے۔ یہ سیٹ اپ یقینی بناتا ہے کہ example.com پر بھیجی گئی کوئی بھی ای میل Python اسکرپٹ کے ذریعے پروسیس کی جاتی ہے اور دونوں SMTP سرورز کو بھیجی جاتی ہے۔
ازگر کے ساتھ ایک سے زیادہ SMTP سرورز پر ای میلز آگے بھیجیں۔
SMTP فارورڈنگ کو ہینڈل کرنے کے لیے ازگر کا استعمال
# multi_forward.py
import smtplib
import sys
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
sender = sys.argv[1]
recipient = sys.argv[2]
def forward_email(sender, recipient):
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = recipient
msg['Subject'] = 'Forwarded email'
msg.attach(MIMEText('This is the body of the email', 'plain'))
# SMTP servers
smtp_servers = ['james.example.com', 'winmail.example.com']
for server in smtp_servers:
with smtplib.SMTP(server) as smtp:
smtp.sendmail(sender, recipient, msg.as_string())
if __name__ == '__main__':
forward_email(sender, recipient)
ازگر اسکرپٹ کو استعمال کرنے کے لیے پوسٹ فکس کو ترتیب دینا
حسب ضرورت میل فارورڈنگ کے لیے پوسٹ فکس کنفیگریشن
# /etc/postfix/master.cf
multi_forward unix - n n - - pipe
flags=Rhu user=nobody argv=/usr/local/bin/multi_forward.py ${sender} ${recipient}
# /etc/postfix/main.cf
transport_maps = hash:/etc/postfix/transport
# /etc/postfix/transport
example.com multi_forward:
# Update transport map
postmap /etc/postfix/transport
# Reload Postfix
systemctl reload postfix
اضافی ٹولز کے ساتھ پوسٹ فکس فنکشنلٹی کو بڑھانا
متعدد SMTP سرورز پر ای میلز کو فارورڈ کرنے کے لیے ایک اور نقطہ نظر میں اضافی پوسٹ فکس ٹولز اور کنفیگریشنز کا استعمال شامل ہے۔ ایسا ہی ایک ٹول پوسٹ فکس ہے۔ sender_dependent_relayhost_maps، جو بھیجنے والے کے پتے کی بنیاد پر مختلف ریلے میزبانوں کی وضاحت کرنے کی اجازت دیتا ہے۔ اگرچہ یہ خصوصیت عام طور پر مختلف ریلے میزبانوں کے ذریعے آؤٹ گوئنگ میل کو روٹ کرنے کے لیے استعمال ہوتی ہے، لیکن اسے کچھ تخلیقی ترتیب کے ساتھ ہمارے استعمال کے معاملے کے لیے ڈھال لیا جا سکتا ہے۔ مثال کے طور پر، کا ایک مجموعہ virtual_alias_maps اور recipient_bcc_maps ای میلز کو ڈپلیکیٹ کرنے اور انہیں مختلف پتوں پر فارورڈ کرنے کے لیے استعمال کیا جا سکتا ہے، جو پھر متعلقہ سرورز پر بھیجے جاتے ہیں۔
مزید برآں، پوسٹ فکس کو میل فلٹر جیسے کے ساتھ ضم کرنا Amavisd-new یا Procmail ای میلز کو ہینڈلنگ اور روٹنگ میں مزید لچک فراہم کر سکتا ہے۔ یہ فلٹرز پوسٹ فکس سے گزرتے ہی ای میلز پر کارروائی کر سکتے ہیں، جس سے حسب ضرورت اسکرپٹس یا قواعد کو نقل کرنے اور متعدد مقامات پر پیغامات کو آگے بھیجنے کی اجازت ملتی ہے۔ اگرچہ یہ سیٹ اپ ایک سادہ Python اسکرپٹ کے استعمال سے زیادہ پیچیدہ ہو سکتا ہے، لیکن یہ ایسے ماحول کے لیے زیادہ قابل اعتماد اور اسکیل ایبلٹی پیش کر سکتا ہے جس میں ای میل پروسیسنگ کی مضبوط صلاحیتوں کی ضرورت ہوتی ہے۔
پوسٹ فکس ای میل فارورڈنگ کے لیے عام سوالات اور حل
- میں DNS میں ایک سے زیادہ MX ریکارڈز کو کیسے ترتیب دے سکتا ہوں؟
- بدقسمتی سے، DNS MX ریکارڈز فی ترجیحی سطح پر صرف ایک سرور کی نقشہ سازی کی حمایت کرتے ہیں، اس لیے یہ طریقہ بیک وقت متعدد سرورز کو فارورڈ کرنے کے لیے کام نہیں کرے گا۔
- کا مقصد کیا ہے transport_maps ہدایت
- دی transport_maps پوسٹ فکس میں ہدایت ای میل ایڈریسز یا ڈومینز کی میپنگ کو مخصوص میل ٹرانسپورٹ کے طریقوں اور منزلوں کے لیے بتاتی ہے۔
- کر سکتے ہیں۔ sender_dependent_relayhost_maps اس منظر نامے میں مدد؟
- جی ہاں، sender_dependent_relayhost_maps بھیجنے والے کے پتے کی بنیاد پر مختلف ریلے ہوسٹس کے ذریعے ای میلز کو روٹ کر سکتے ہیں، لیکن اسے متعدد سرورز پر فارورڈ کرنے کے لیے تخلیقی طور پر ڈھالنے کی ضرورت ہے۔
- وہ کیسے virtual_alias_maps Postfix میں کام کرتے ہیں؟
- دی virtual_alias_maps ہدایت نامہ پوسٹ فکس کو ای میل پتوں کو دوسرے پتوں پر نقشہ کرنے کی اجازت دیتا ہے، ای میلز کو فارورڈنگ اور ری ڈائریکشن کو قابل بناتا ہے۔
- کا کردار کیا ہے۔ recipient_bcc_maps?
- دی recipient_bcc_maps ڈائرکٹیو پوسٹ فکس کو خود بخود BCC وصول کنندگان کو آنے والی ای میلز میں شامل کرنے کی اجازت دیتا ہے، جو کہ پیغامات کو نقل کرنے کے لیے مفید ہے۔
- کیا میں استعمال کر سکتا ہوں Amavisd-new ای میل فارورڈنگ کے لیے پوسٹ فکس کے ساتھ؟
- جی ہاں، Amavisd-new اپنی مرضی کے مطابق فلٹرنگ اور فارورڈنگ کے قوانین کو لاگو کرنے کے لیے پوسٹ فکس کے ساتھ مربوط کیا جا سکتا ہے، ای میل پروسیسنگ پر زیادہ کنٹرول فراہم کرنا۔
- کیا ہے master.cf فائل کے لیے استعمال کیا؟
- دی master.cf پوسٹ فکس میں فائل میل کی ترسیل کے عمل اور ان کی تشکیلات کی وضاحت کرتی ہے، بشمول حسب ضرورت ٹرانسپورٹ خدمات۔
- میں اپ ڈیٹ کیسے کروں؟ transport map ڈیٹا بیس؟
- کا استعمال کرتے ہیں postmap /etc/postfix/transport ٹرانسپورٹ میپ فائل سے بائنری ڈیٹا بیس بنانے یا اپ ڈیٹ کرنے کا کمانڈ۔
- پوسٹ فکس کو دوبارہ لوڈ کرنا کیوں ضروری ہے؟
- پوسٹ فکس کے ساتھ دوبارہ لوڈ کرنا systemctl reload postfix سروس کو روکے بغیر کنفیگریشن تبدیلیاں لاگو کرتا ہے، ہموار آپریشن کو یقینی بناتا ہے۔
- کیا smtplib Python میں استعمال کیا جاتا ہے؟
- دی smtplib Python میں لائبریری کو SMTP کے ذریعے ای میلز بھیجنے کے لیے استعمال کیا جاتا ہے، اسکرپٹ کو ای میل ٹرانسمیشن کو پروگرام کے مطابق ہینڈل کرنے کی اجازت دیتا ہے۔
ڈوئل سرور فارورڈنگ پر حتمی خیالات
متعدد SMTP سرورز پر پیغامات بھیجنے کے لیے پوسٹ فکس ترتیب دینے میں حسب ضرورت اسکرپٹس اور تفصیلی پوسٹ فکس کنفیگریشنز کا مجموعہ شامل ہے۔ اگرچہ DNS یا سادہ Python اسکرپٹس کو استعمال کرنے کی ابتدائی کوششیں مطلوبہ اعتبار کی پیشکش نہیں کر سکتی ہیں، لیکن اعلی درجے کی پوسٹ فکس خصوصیات اور ٹولز جیسے Amavisd-new یا Procmail کو یکجا کرنا زیادہ مضبوط حل فراہم کر سکتا ہے۔ نقل و حمل کے نقشوں، ورچوئل عرفی نقشوں، اور وصول کنندہ کے بی سی سی نقشوں کو احتیاط سے ترتیب دے کر، آپ جیمز اور ون میل سرورز دونوں کو بغیر کسی رکاوٹ اور موثر پیغام کو آگے بھیجنے کو یقینی بنا سکتے ہیں۔ یہ نقطہ نظر اس بات کو یقینی بناتا ہے کہ آپ کا ای میل انفراسٹرکچر لچکدار اور پیچیدہ روٹنگ کی ضروریات کو سنبھالنے کے قابل ہے۔