Exim چیست؟ معرفی سرویس ایمیل اگزیم و دستورهای مفید آن
در این مقاله میخوانید
اگزیم (Exim) نرمافزاری متنباز برای ارسال یا دریافت ایمیل در سیستمعاملهای Linux و Unix است. این برنامه در دسته برنامههای تبادل ایمیل (Mail Transfer Agent بهاختصار MTA) قرار میگیرد و برای سیستمهایی ساخته شده است که بهصورت مستمر به اینترنت متصل هستند؛ اگرچه با اعمال تنظیماتی میتوان برای سیستمهایی با اتصال متناوب به اینترنت نیز از آن استفاده کرد. اگزیم تا حدی شبیه به Smail است؛ اما امکانات بیشتری برای کاربران فراهم میکند. اگر میخواهید با Exim و نحوه استفاده از آن آشنا شوید، این مقاله میتواند راهنمای خوبی برایتان باشد.
Exim چیست؟
Exim مخفف Experimental Internet Mailer نرمافزاری برای تبادل ایمیل بین هاستهای مختلف و تحتمجوز عمومی گنو (GPL) است. با دریافت مجوز GPL، بهراحتی میتوان کد منبع این نرمافزار را ویرایش و بازنشر کرد. اگزیم انعطافپذیری بسیاری در مسیریابی ایمیل ارسالی فراهم میکند و امکانات گستردهای برای بررسی ایمیلهای دریافتی دراختیار کاربران قرار میدهد. علاوهبر ارسال یا دریافت ایمیل، قابلیتهای Mail Alias ،Mail Forwarding ،Mail Filtering و Mail Deliver دیگر امکانات این نرمافزار بهشمار میآیند. با استفاده از Shell، میتوانید به دستورهای Exim دسترسی پیدا کنید.
آشنایی با نرم افزار تبادل ایمیل اگزیم
معرفی عملکرد Exim
MTA نرمافزاری است که در سیستمهای مدیریت ایمیل استفاده میشود و وظیفه ارسال و مسیریابی ایمیل را از دستگاه فرستنده به گیرنده برعهده دارد. Exim بهعنوان MTA میتواند پیامها را ازطریق پروتکل ساده انتقال ایمیل (SMTP) از هاستهای مختلف روی شبکه TCP/IP دریافت کند. این نرمافزار امکان ارسال پیامها را از آدرس محلی (Local) به آدرسهای غیرمحلی دارد و از پروتکلهای IPv4 و IPv6 نیز پشتیبانی میکند. اگر به پروتکلهایی مثل UUCP نیاز داشته باشید، با استفاده از اینترفیس، امکان اتصال به ابزارهای پشتیبانیکننده از این پروتکل را خواهید داشت.
راهاندازی و تنظیمات Exim
تنظیمات و فایلهای راهاندازی Exim بسیار انعطافپذیرند و آنها را میتوانید بهگونهای تغییر دهید که دقیقاً نیازهایتان را برطرف کنند. برای مثال، دامنههای مجازی و Mailing Listها (ارسال ایمیل انبوه به کاربران) را با میتوانید استفاده از این نرمافزار سفارشیسازی کنید.
تنظیمات این سیستم ازطریق فایلی انجام میشود که به بخشهای مختلفی تقسیم و ورودیهای هر بخش هم از Keyword/Value تشکیل شده است. ناگفته نماند امکان استفاده از Regular Expressionهای سازگار با Perl 5 هم در این ابزار وجود دارد. فایل پیکربندی میتواند بهصورت خطی و ایندکسشده (Index) به داده فایلهای دیگر اشاره و از دیتابیسهای مختلفی مثل NIS ،NIS+ ،LDAP ،PostgreSQL و MySQL استفاده کند.
فایل مدنظر امکان استفاده از فهرستهای آنلاین مثل Realtime Blackhole List یا RBL را نیز دارد؛ بههمیندلیل، میتوانید اکثر فعالیتهای Exim را خودکارسازی کنید. RBL بررسی آیپی و دامنهها را برای جلوگیری از ارسال پیامهای اسپم انجام میدهد. بهعنوان نمونه، پیامها را به سیستمهایی میتوانید انتقال دهید که کاربران روی آن هیچ حسابی ندارند یا با اجرای مفسّر Perl انعطافپذیری سیستم را به بیشترین حد ممکن برسانید.
تنظیمات پیامهای ورودی در Exim
امکان استفاده از قابلیتهای مختلفی برای بررسی و کنترل پیامهای ورودی وجود دارد. برای مثال، بیشترین حجم پیامهای دریافتی را میتوانید مدیریت یا تماسهای SMTP از برخی هاستها و شبکهها را محدود کنید. همچنین، امکان محدودکردن برخی هاستها بهصورت اختصاصی یا ازطریق فهرستهای RBL نیز وجود دارد. با Exim میتوانید مشخص کنید کدام هاستها میتوانند از هاستهای اگزیم بهعنوان کنترلر برای ارسال پیام استفاده کنند. برای این منظور، از مکانیسم SMTP Auth استفاده میشود.
پیامهای ورودی در اگزیم را چگونه تنظیم کنیم؟
امکانات و قابلیتهای اگزیم
معمولاً برای کاربران نهایی مهم نیست که کدام MTA برایشان پیام میفرستد؛ اما با استفاده از Exim و قابلیتهای فیلترینگ آن، میتوانید هنگام ارسال فایل از قابلیتهای مختلفی بهرهمند شوید. برای نمونه، فایل فیلتر ویژگیهای مختلف پیام ازجمله محتویات هِدِر و بدنه پیام را بررسی و پیام مدنظر را به آدرس مناسب هدایت میکند. همچنین، مدیر سیستم میتواند از این قابلیت استفاده و پیامها را قبل از رسیدن به مقصد بررسی کند.
مانند همه نرمافزارهای تبادل ایمیل، Exim نیز از اینترفیس همخانواده خود، یعنی Sendmail، استفاده میکند. تمامی گزینههای مربوط به Sendmail در رابط کاربری این برنامه وجود دارد. علاوهبراین، گزینههای اضافی مربوط به Smail 3 و برخی قابلیتهای مربوط به اگزیم در آن گنجانده شده است. پیامهای در صف انتظار را میتوانید با استفاده از دستورهای خط فرمان کنترل کنید. برنامهای نیز برای مانیتورینگ اختیاری با عنوان Exi-mon وجود دارد که اطلاعات فعلی را در پنجرهای جداگانه نمایش میدهد و میتواند دستورهای خط فرمان را ازطریق اینترفیس اجرا کند.
دستورهای کاربردی Exim
بسیاری از سرورهای مجازی از Exim بهعنوان Mail Server اختصاصی استفاده میکنند. اگرچه ارسال یا دریافت ایمیل از این Mail Server بسیار ساده انجام میشود، ممکن است به تغییر برخی از تنظیمات آن نیاز داشته باشید. ازاینرو، در مقاله حاضر دستورهای کاربردی Exim را آماده کردهایم تا بتوانید از این میلسرور بهراحتی استفاده کنید. درحالحاضر، فایلهای کانفیگ Exim برای سیستمعاملهای زیر دردسترس است:
AIX, BSD/OS (aka BSDI), Darwin (Mac OS X), DGUX, Dragonfly, FreeBSD, GNU/Hurd, GNU/Linux, HI-OSF (Hitachi), HI-UX, HP-UX, IRIX, MIPS RISCOS, NetBSD, OpenBSD, OpenUNIX, QNX, SCO, SCO SVR4.2 (aka UNIX-SV), Solaris (aka SunOS5), SunOS4, Tru64-Unix, Ultrix, and UnixWare
فایلهای کانفیگ موردنیاز برای نصب Exim در محیط Cygwin و اجرای آن در سیستمهای ویندوزی نیز موجود است؛ بههمیندلیل، میتوانید اگزیم را در محیطهای ویندوزی نیز نصب و راهاندازی کنید. قبل از هر کاری، ازطریق SSH باید در سرور لاگین شوید و سپس از دستورهای زیر برای مدیریت میلسرور استفاده کنید:
نمایش تعداد پیامهای موجود در صف:
exim -bpc
نمایش اطلاعات مربوط به پیامهای موجود در صف:
exim -bp
این دستور زمان ورود پیام به صف، اندازه، Message-id، فرستنده و گیرنده پیام را نمایش میدهد.
نمایش خلاصهای از پیامهای موجود در صف ازجمله تعداد، حجم، قدیمیترین پیام، جدیدترین پیام، دامین و کل پیامهای موجود:
exim -bp | exiqsumm
نمایش فعالیتهای فعلی Exim:
Exiwhat
بررسی و نمایش فعالیتهای جاری اگزیم
تست تراکنشهای SMTP در Exim:
exim -bh ipaddress
این دستور یک تراکنش SMTP را از آیپی آدرسی اختصاصدادهشده آغاز میکند. وضعیت Exim نیز در زمان اجرای تراکنش نمایش داده میشود. توجه کنید پیامی که با این روش ارسال میکنید، تحویل داده نمیشود.
بررسی تراکنشهای SMTP
نمایش تنظیمات Exim
exim -bP
چگونه تنظیمات اگزیم را نمایش دهیم
جستوجوی صف انتظار برای پیامهای فرستندهای خاص:
exiqgrep -f [luser]@domain
جستوجوی صف انتظار برای پیامهای گیرنده یا دامینی خاص:
exiqgrep -r [luser]@domain
نمایش پیامهای قدیمیتر از مدتزمانی مشخص:
exiqgrep -o seconds [...]
نمایش پیامهای جدیدتر از مدتزمانی مشخص:
exiqgrep -y seconds [...]
پیداکردن پیامهایی با حجم مشخص:
exiqgrep -s '^4..$' [...]
دستور بالا فقط پیامهای بین ۴۰۰ تا ۴۹۹ بایت را نمایش میدهد.
- از دستور z– برای نمایش پیامهای فریزشده استفاده کنید.
- از دستور x– برای نمایش پیامهای فریزنشده استفاده کنید
- برای مشاهده آیدی پیام (Message-id)، از دستور I– استفاده کنید.
- دستور c– تعداد پیامهای موجود را نمایش میدهد.
نمایش تعداد پیامهای موجود در صف انتظار:
exiqgrep -c ...
شروع اجرای صف:
root@localhost# exim -q -v
پاککردن یک پیام از صف:
root@localhost# exim -Mrm <message-id> [ <message-id> ... ]
فریزکردن پیام:
root@localhost# exim -Mf <message-id> [ <message-id> ... ]
ارسال پیام به مقصد:
root@localhost# exim -M <message-id> [ <message-id> ... ]
ارسال پیام به مقصد درصورتیکه مدتزمان تلاش مجدد (Retry) تمام شده باشد:
root@localhost# exim -Mc <message-id> [ <message-id> ... ]
متوقفکردن اجباری پیام:
root@localhost# exim -Mg <message-id> [ <message-id> ... ]
حذف تمامی پیامهای فریزشده:
root@localhost# exiqgrep -z -i | xargs exim -Mrm
حذف تمام پیامهای قدیمیتر از مدتزمانی مشخص:
root@localhost# exiqgrep -o seconds -i | xargs exim -Mrm
فریز کردن تمام پیامهای موجود در صف از فرستندهای مشخص:
root@localhost# exiqgrep -i -f [email protected]| xargs exim -Mf
مشاهده هِدِرهای ایمیل پیام:
root@localhost# exim -Mvh <message-id>
مشاهده بدنه پیام:
root@localhost# exim -Mvb <message-id>
مشاهده گزارشهای پیام:
root@localhost# exim -Mvl <message-id>
اضافهکردن گیرنده به پیام:
root@localhost# exim -Mar <message-id> <address> [ <address> ... ]
ویرایش فرستنده پیام:
root@localhost# exim -Mes <message-id> <address>
جمعبندی
Exim میلسروری است که در بسیاری از هاستها یا سرورهای مجازی از آن استفاده میشود. درصورتیکه قصد دارید در سرور مجازی خود از اگزیم استفاده کنید، توضیحات ارائهشده در این مقاله میتواند برایتان مفید باشد.
سؤالات متداول
1. Exim چیست؟
Exim نرمافزار تبادل ایمیل برای هاستهای مجهز به سیستمعامل Unix یا برپایه یونیکس است.
2. رقبای Exim کدام نرمافزارها هستند؟
Sendmail و Qmail و Postfix از رقبای جدی نرمافزار تبدیل ایمیل اگزیم هستند.
3. آیا میتوان از Exim در ویندوز استفاده کرد؟
بله، فایلهای پیکربندی موردنیاز برای نصب Exim در محیط Cygwin و اجرای آن در سیستمهای ویندوزی نیز موجود است