EXIM نرم افزار عامل انتقال پست منبع باز بسیار قابل تنظیم است

exim سرویس ایمیل معامله ای

نماینده انتقال نامه منبع باز به عنوان گزینه جایگزین SendMail

EXIM عامل انتقال پست الکترونیکی منبع باز برای مسیریابی و تحویل ایمیل بسیار قابل تنظیم است. این انتخاب شماره یک برای سازمانهای سطح سازمانی برای انعطاف پذیری آن است.

بررسی اجمالی

ارتباط از طریق نامه الکترونیکی در زندگی ما ابتدایی شده است. ارسال ایمیل از دسک تاپ ، موبایل یا هر دستگاه دیگر یک روز به روز برای بیشتر افراد است. پروتکل انتقال نامه ساده (SMTP) پروتکل استانداردی است که برای ارسال ایمیل استفاده می شود. IMAP و POP3 پروتکل هایی برای دریافت ایمیل هستند. IMAP به دلیل هماهنگ سازی در دستگاه ها ، مزایایی نسبت به POP دارد. بنابراین ، یک عامل انتقال پستی که منبع باز و پشتیبانی از تمام این پروتکل های مورد نیاز بسیار مهم است. اجرای نماینده انتقال نامه شما یک کار بسیار خسته کننده است و از این رو انتخابی که برای نرم افزار MTA انجام می دهید ، نیاز به تجزیه و تحلیل عمیق در برابر ماتریس مورد نیاز شما دارد. EXIM یکی از انعطاف پذیرترین عامل انتقال نامه منبع باز است که می تواند به عنوان جایگزینی عامل انتقال پستی پیش فرض از سیستم های UNIX استفاده شود. EXIM دارای مجموعه ای از ویژگی های برش از جمله سازگاری Sendmail ، پشتیبانی CPanel ، پیکربندی انعطاف پذیر و مهمتر از همه پشتیبانی از جامعه منبع باز است. Exim مانند یک چارچوب با زبان برنامه خود برای تنظیم تنظیمات پیچیده است. این یک منطق پیشرفته پردازش پستی چند مرحله ای دارد که به آن کمک می کند تا موارد استفاده پیچیده را حل کند. SendMail در حال حاضر در همه جنبه ها به PostFix از دست داده است ، با این حال ، PostFix از Exim کمتر متنوع است. این پشتیبانی از ادغام عالی است و همه چیز را که یک مدیر سیستم می تواند از آن بخواهد فراهم می کند. EXIM بیشتر ویژگی های عامل انتقال نامه را به نوعی یا دیگری پشتیبانی می کند.

الزامات سیستم

قبل از ساختن EXIM ، یک پرونده پیکربندی محلی که گزینه های مستقل از هر سیستم عامل را مشخص می کند ، باید با نام محلی/MakeFile ایجاد شود. الگویی برای این پرونده به عنوان پرونده src/editme تهیه می شود و حاوی توضیحات کامل از کلیه تنظیمات گزینه در آن است. بنابراین این توضیحات در اینجا تکرار نمی شوند. اگر برای اولین بار در حال ساخت EXIM هستید ، ساده ترین کار این است که SRC/EditMe را به محلی/MakeFile کپی کنید ، سپس آن را بخوانید و آن را به طور مناسب ویرایش کنید. سه تنظیم وجود دارد که شما باید آنها را تهیه کنید ، زیرا Exim بدون آنها نمی سازد. آنها محل پرونده پیکربندی زمان اجرا هستند (پیکربندی \ _file) ، دایرکتوری که در آن باینری های Exim نصب می شوند (سطل \ _directory) و هویت کاربر EXIM (Exim \ _user و شاید Exim \ _group و همچنین). مقدار پیکربندی \ _file در واقع می تواند یک لیست جدا از روده بزرگ باشد. Exim از اولین موردی که وجود دارد استفاده می کند. چند پارامتر دیگر وجود دارد که می توانند یا در زمان ساخت یا در زمان اجرا مشخص شوند ، تا بتوانید همان باینری را در تعدادی از ماشین های مختلف استفاده کنید. با این حال ، اگر مکان دایرکتوری Spool EXIM و فهرست پرونده های ورود به سیستم (اگر در فهرست قرقره نباشد) برطرف شده است ، توصیه می شود که آنها را به جای زمان اجرا ، آنها را در محلی/makefile مشخص کنید ، به طوری که خطاهایی که در اوایل اجرای EXIM تشخیص داده می شوند (از این دست. به عنوان یک پرونده پیکربندی ناقص) می توان وارد سیستم شد. رابط های EXIM برای فراخوانی نرم افزار اسکن ویروس و اسپم مستقیم از لیست کنترل دسترسی به طور پیش فرض گردآوری نمی شوند. اگر می خواهید این امکانات را درج کنید ، باید تنظیم کنید

WITH_CONTENT_SCAN=yes

در محلی/makefile خود. برای جزئیات بیشتر در مورد امکانات اگر می خواهید مانیتور EXIM را بسازید ، یک فرآیند پیکربندی مشابه مورد نیاز است. پرونده exim \ _monitor/editme باید برای نصب شما مناسب ویرایش شود و تحت نام local/eximon.conf ذخیره شود. اگر از تنظیمات پیش فرض شرح داده شده در Exim \ _monitor/editme خوشحال هستید ، محلی/eximon.conf می تواند خالی باشد ، اما باید وجود داشته باشد. این تمام پیکربندی است که در موارد ساده برای سیستم عامل های شناخته شده مورد نیاز است. با این حال ، فرآیند ساختمان به گونه ای تنظیم شده است که به راحتی می توان گزینه هایی را که به طور پیش فرض یا با استفاده از پرونده های پیکربندی خاص سیستم تنظیم شده ، تنظیم کنید ، به عنوان مثال ، برای تغییر کامپایلر C ، که پیش فرض GCC است.

امکانات

EXIM از تمام ویژگی های مدرن که می توانید از نرم افزار Top Source Transfer Source Transfer Transfer Mail تصور کنید پشتیبانی می کند. اینها برخی از ویژگی های اصلی EXIM است:

  • Exim از همان رویکرد کلی کنترل غیر متمرکز که Smail انجام می دهد ، پیروی می کند. هیچ فرآیند اصلی انجام مدیریت کلی تحویل نامه وجود ندارد. با این حال ، بر خلاف Smail ، فرآیندهای تحویل مستقل داده ها را به صورت “نکات” به اشتراک می گذارند ، که باعث می شود تحویل در برخی موارد کارآمدتر شود. نکات در تعدادی از پرونده های DBM نگهداری می شود. اگر هر یک از این پرونده ها از بین برود ، تنها تأثیر تغییر الگوی تلاش و آزمایش مجدد است.
  • بسیاری از گزینه های پیکربندی را می توان به عنوان رشته های انبساط ، که هنگام استفاده از آنها به روش های مختلف تبدیل می شوند ، ارائه شود. از آنجا که این موارد می تواند شامل جستجوی پرونده باشد ، بخش اعظم عملکرد Exim در صورت تمایل می توان جدول را محور قرار داد. به عنوان مثال ، انجام تحویل محلی بر روی دستگاهی که کاربران در آن حساب کاربری ندارند ، امکان پذیر است. انعطاف پذیری نهایی را می توان با اجرای یک مترجم Perl در حالی که یک رشته را گسترش داد ، (با قیمت) بدست آورد.
  • دسترسی به مشاهده پیام های تاریخی.
  • دسترسی به مشاهده کامل خروجی & amp ؛ صف پیام ورودی.
  • EXIM دارای الگوریتم های آزمایش مجدد انعطاف پذیر است که برای کارگردانی و آدرس های مسیریابی و همچنین تحویل کاربرد دارد.
  • EXIM شامل هدر و امکانات بازنویسی پاکت است.
  • آدرس های غیرقابل قبول فقط از میزبان یا شبکه های مشخص پذیرفته می شوند.
  • EXIM پس از تأخیر در تحویل ، می تواند چندین زایمان را در همان کانال SMTP انجام دهد.
  • EXIM می تواند برای انجام سریع تحویل های محلی پیکربندی شود اما تحویل از راه دور (SMTP) را ترک کنید تا پیام توسط یک فرآیند صف انتخاب شود. این امر احتمال ارسال پیام های متعدد در یک اتصال SMTP را افزایش می دهد.
  • تحویل از راه دور از همان پیام به میزبان های مختلف می تواند به صورت اختیاری به صورت موازی انجام شود.
  • پیام های SMTP ورودی به محض دریافت ، بدون انتظار برای بسته شدن تماس SMTP ، تحویل را شروع می کنند.
  • EXIM از پسوند SMTP Auth برای تأیید اعتبار مشتری ، و برای برنامه افزودنی StartTLS برای تنظیم اتصالات رمزگذاری شده پشتیبانی می کند.
  • عبارات منظم سازگار با پرل در تعدادی از پارامترهای پیکربندی موجود است.
  • لیست های دامنه می توانند شامل جستجوی فایل باشند ، و امکان پشتیبانی از تعداد بسیار زیادی از دامنه های محلی را فراهم می کند.
  • EXIM از بررسی اختیاری مسیر بازگشت ورودی (فرستنده) و آدرس گیرنده پشتیبانی می کند زیرا توسط SMTP دریافت می شود.
  • تماس های SMTP از ماشین های خاص ، به صورت اختیاری از شناسه های خاص ، می توانند قفل شوند و پیام های SMTP ورودی از فرستنده های خاص نیز می توانند قفل شوند. EXIM همچنین از استفاده از لیست مسدود کردن زمان (RBL) پشتیبانی می کند.
  • میزبان هایی که مجاز به ارسال نامه از طریق دستگاه به دامنه خارجی دیگری هستند می توانند با شماره IP یا شماره شبکه IP کنترل شوند. کنترل رله توسط دامنه گیرنده و آدرس فرستنده نیز در دسترس است.
  • پیام های موجود در صف می توانند توسط مدیر “یخ زده” و “ذوب شده” باشند.
  • Exim می تواند تعدادی از دامنه های محلی مستقل را در همان دستگاه اداره کند. هر دامنه می تواند پرونده های نام مستعار خاص خود را داشته باشد ، و غیره. این تسهیلات گاهی به عنوان “دامنه های مجازی” شناخته می شود.
  • لیست های پستی ساده را می توان مستقیماً توسط خود EXIM انجام داد (اما برای عملیات لیست پستی “جدی” ، بهتر است از آن در رابطه با نرم افزار ویژه لیست پستی استفاده کنید).
  • EXIM قبل از جستجوی پرونده “.forward” ، دایرکتوری خانه کاربر را به منظور تشخیص پرونده مفقود شده NFS ، آمار می دهد. در صورت عدم دسترسی به فهرست ، تحویل به تأخیر می افتد.
  • EXIM حاوی یک تسهیلات فیلتر پستی داخلی اختیاری است. این می تواند پیکربندی شود تا کاربران بتوانند پرونده های فیلتر شخصی را ارائه دهند ، و همچنین امکان استفاده از یک فایل فیلتر در سطح سیستم نیز برای هر پیام امکان پذیر است.
  • پشتیبانی از صندوق پستی چندین کاربر که توسط پیشوندها یا پسوندها بر روی نام کاربری کنترل می شوند ، از طریق مکانیسم فیلتر یا از طریق چندین پرونده “.forward” کنترل می شود.
  • هشدارهای دوره ای هنگام تأخیر در تحویل به طور خودکار به فرستنده پیام ها ارسال می شوند - زمان بین هشدارها قابل تنظیم است. هشدارها را می توان در مورد محتوای پیام مشروط کرد.
  • یک صف می تواند به صورت دستی فقط بخش خاصی از صف را تحویل دهد ، یا پیام هایی را با یک گیرنده که آدرس آن حاوی یک رشته خاص است ، تحویل دهد. پشتیبانی از دستور ETRN در SMTP برای رابط این کار وجود دارد.
  • EXIM می تواند پیکربندی شود تا تمام وقت به عنوان ریشه اجرا شود ، به جز هنگام انجام زایمان های محلی ، که همیشه در یک فرآیند جداگانه تحت یک UID و GID مناسب انجام می شود. از طرف دیگر ، می توان پیکربندی کرد که فقط در صورت لزوم به عنوان ریشه اجرا شود. به طور خاص ، هنگام دریافت پیام های دریافتی یا هنگام ارسال پیام از طریق SMTP ، نیازی به Root ندارد. برای بحث در مورد موضوعات امنیتی به فصل 55 مراجعه کنید.
  • من سعی کرده ام متن پیام های خرابی تحویل را واضح تر و ساده تر کنم ، به نفع آن دسته از افراد کمتر تجربه که اکنون از ایمیل استفاده می کنند. متن جایگزین برای این پیام ها می تواند در یک پرونده جداگانه ارائه شود.
  • مانیتور EXIM یک اضافی اختیاری است. این اطلاعات در مورد پردازش Exim را در یک پنجره X نشان می دهد ، و یک مدیر می تواند تعدادی از اقدامات کنترل را از رابط پنجره انجام دهد. با این حال ، تمام چنین اقداماتی از رابط خط فرمان نیز موجود است.

دستورالعمل نصب و راه اندازی

نصب باینری ها و اسکریپت های exim

دستور make نصب اسکریپت exim \ _install را بدون استدلال اجرا می کند. اسکریپت باینری ها و اسکریپت های ابزار را در دایرکتوری که نام آن توسط سطل \ _directory در محلی/makefile مشخص شده است ، کپی می کند. اسکریپت نصب فقط در صورتی که جدیدتر از پرونده هایی باشد که می خواهند جایگزین کنند ، فایلها را کپی می کند. باینری Exim لازم است که توسط Root متعلق باشد و برای تنظیمات عادی مجموعه بیت SetUID را داشته باشد. بنابراین ، شما باید نصب را به صورت ریشه اجرا کنید تا بتواند باینری Exim را از این طریق تنظیم کند. با این حال ، در برخی از شرایط خاص (به عنوان مثال ، اگر یک میزبان در حال انجام تحویل محلی نباشد) ممکن است بدون ساختن ریشه باینری ، EXIM را اجرا کند (برای جزئیات بیشتر به فصل 56 مراجعه کنید). پرونده پیکربندی زمان اجرا EXIM توسط تنظیمات \ _file در محلی/MakeFile نامگذاری شده است. اگر این یک پرونده واحد را نامگذاری کند ، و پرونده وجود ندارد ، پرونده پیکربندی پیش فرض SRC/Configure.Default در آنجا توسط اسکریپت نصب کپی می شود. اگر یک پرونده پیکربندی زمان اجرا از قبل وجود داشته باشد ، تنها مانده است. اگر پیکربندی \ _file یک لیست جدا از روده بزرگ است ، نامگذاری چندین پرونده جایگزین ، هیچ پیش فرض نصب نشده است. در هنگام نصب ، یک تغییر در پرونده پیکربندی پیش فرض ایجاد شده است: پیکربندی پیش فرض حاوی روتر است که به یک فایل نام مستعار سیستم ارجاع می دهد. مسیر این پرونده بر روی مقدار مشخص شده توسط سیستم \ _aliases \ _file در محلی/makefile (/etc/aliases به طور پیش فرض) تنظیم شده است. اگر پرونده Aliases System وجود نداشته باشد ، اسکریپت نصب آن را ایجاد می کند و نظر خود را به کاربر می دهد. پرونده ایجاد شده حاوی نام مستعار نیست ، اما حاوی اظهار نظرهایی در مورد نام مستعار یک سایت است که به طور معمول باید داشته باشد. نام مستعار نامه به طور سنتی در /etc /aliases نگه داشته شده است. با این حال ، برخی از سیستم عامل ها اکنون از/etc/mail/aliases استفاده می کنند. شما باید بررسی کنید که آیا مال شما یکی از این موارد است و در صورت لزوم پیکربندی Exim را تغییر دهید. پیکربندی پیش فرض از نام میزبان محلی به عنوان تنها دامنه محلی استفاده می کند و برای انجام تحویل های محلی به فهرست مشترک /var /mail ، که به عنوان کاربر محلی اجرا می شود ، تنظیم شده است. نام مستعار سیستم و پرونده های پیشرو در دایرکتوری های خانگی کاربران پشتیبانی می شود ، اما هیچ پشتیبانی NIS یا NIS+ پیکربندی نشده است. دامنه های غیر از نام میزبان محلی با استفاده از DNS ، با تحویل بیش از SMTP ، مسیریابی می شوند. نصب EXIM برای اهداف خاص (مانند ایجاد توزیع باینری) در یک قسمت خصوصی از سیستم پرونده امکان پذیر است. شما می توانید این کار را با دستور مانند انجام دهید

make DESTDIR=/some/directory/ install

این اثر پیش از انتظار دایرکتوری مشخص شده را به کلیه مسیرهای پرونده دارد ، به جز نام پرونده Aliases System که در پیکربندی پیش فرض ظاهر می شود. (اگر یک پرونده پیش فرض نام مستعار ایجاد شود ، نام آن اصلاح شده است.) برای سازگاری به عقب ، در صورت تنظیم Destdir از ریشه استفاده می شود ، اما این استفاده کاهش می یابد. نصب Make Make نصب اسکریپت تبدیل EXIM 4 Convert4R4 را کپی نمی کند. شما احتمالاً این کار را فقط یک بار اجرا خواهید کرد در صورت ارتقاء از EXIM 3. هیچ یک از پرونده های مستندات موجود در فهرست DOC کپی نمی شوند ، به جز پرونده های اطلاعاتی که اطلاعات را تنظیم کرده اید \ _directory ، همانطور که در بخش 4.17 در زیر توضیح داده شده است. برای برنامه های ابزار ، نسخه های قدیمی با افزودن پسوند .o به نام آنها تغییر نام داده می شوند. با این حال خود باینری Exim متفاوت اداره می شود. این ماده با نامی نصب شده است که شامل شماره نسخه و شماره کامپایل است ، به عنوان مثال ، EXIM-4.94-1. سپس اسکریپت یک پیوند نمادین به نام Exim ترتیب می دهد تا به باینری اشاره کند. اگر نسخه قبلی EXIM را به روز می کنید ، اسکریپت مراقبت می کند تا اطمینان حاصل کند که نام Exim هرگز از فهرست (همانطور که توسط سایر فرآیندهای مشاهده می شود) وجود ندارد. اگر می خواهید قبل از اجرای واقعی چه کاری را انجام دهید ، می توانید گزینه -n را با این دستور به اسکریپت نصب منتقل کنید:

make INSTALL_ARG=-n install

محتویات نصب متغیر \ _arg به اسکریپت نصب منتقل می شود. برای اجرای این تست نیازی به ریشه ندارید. از طرف دیگر ، می توانید اسکریپت نصب را مستقیماً اجرا کنید ، اما این باید از داخل فهرست ساخت باشد. به عنوان مثال ، از دایرکتوری EXIM سطح بالا می توانید از این دستور استفاده کنید:

(cd build-SunOS5-5.5.1-sparc; ../scripts/exim_install -n)

دو گزینه دیگر وجود دارد که می تواند به اسکریپت نصب ارائه شود.

  • -no \ _chown تماس را برای تغییر صاحب دودویی نصب شده به ریشه دور می کند ، و فراخوانی برای ساختن آن به یک دودویی setuid است.
  • -no \ _symlink راه اندازی لینک نمادین EXIM به باینری نصب شده را دور می زند. نصب \ _arg می تواند برای انتقال این گزینه ها به اسکریپت استفاده شود. مثلا:
make INSTALL_ARG=-no_symlink install

به اسکریپت نصب نیز می توان آرگومان هایی را مشخص کرد که مشخص می شود کدام پرونده ها کپی می شوند. به عنوان مثال ، برای نصب فقط باینری Exim ، و هیچ چیز دیگری ، بدون ایجاد پیوند نمادین ، ​​می توانید از آن استفاده کنید:

make INSTALL_ARG='-no_symlink exim' install

نصب اسناد اطلاعات

همه سیستم ها از سیستم اطلاعات GNU برای مستندات استفاده نمی کنند ، و به همین دلیل ، منبع TexInfo از مستندات Exim در توزیع اصلی گنجانده نشده است. در عوض ، جداگانه از سایت FTP در دسترس است (به بخش 1.5 مراجعه کنید). اگر اطلاعات \ _directory را در محلی/makefile تعریف کرده اید و منبع TexInfo اسناد در درخت منبع یافت می شود ، اجرای نصب به طور خودکار پرونده های اطلاعاتی را ایجاد می کند و آنها را نصب می کند.

 فارسی