Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Поштаны жеткізу агенті (1995 ж. жазылған) электрондық поштаны жеткізу агенті.
Mail transfer agent (written 1995)
the electronic mail transfer agent
Exim – Unix сияқты операциялық жүйелерде қолданылатын поштаны жеткізу агенті (MTA). Exim – GNU General Public License шарты бойынша таратылатын ақысыз бағдарламалық қамтамасыз ету. Ол келіп түсетін электрондық поштаны тексеруге арналған кең мүмкіндіктері бар, жалпы және икемді пошта таратушы болып табылады. Exim көптеген Unix сияқты жүйелерге, сондай-ақ Cygwin эмуляция қабаты арқылы Microsoft Windows жүйесіне портталды. Қазіргі уақытта Exim 4 – Debian Linux жүйелеріндегі стандартты MTA. Көптеген Exim орналымдары бар, әсіресе Ұлыбританиядағы интернет-провайдерлер мен университеттерде. Exim сонымен қатар GNU Mailman пошта тізімі басқарушысымен және cPanel-мен кеңінен қолданылады. 2023 жылдың наурызында E Soft, Inc. жүргізген зерттеуде интернеттегі қоғамдық желідегі пошта серверлерінің 59%-ы Exim-ді пайдаланатыны болжанды.
Exim is a mail transfer agent (MTA) used on Unix like operating systems. Exim is a free software distributed under the terms of the GNU General Public License, and it aims to be a general and flexible mailer with extensive facilities for checking incoming e mail. Exim has been ported to most Unix like systems, as well as to Microsoft Windows using the Cygwin emulation layer. Exim 4 is currently the default MTA on Debian Linux systems. Many Exim installations exist, especially within Internet service providers and universities in the United Kingdom. Exim is also widely used with the GNU Mailman mailing list manager, and cPanel. In March 2023 a study performed by E Soft, Inc., approximated that 59% of the publicly reachable mail servers on the Internet ran Exim.
Шығу тегі
Exim-нің алғашқы нұсқасы 1995 жылы Филип Хейзел Кембридж университетінің есептеу қызметінің электрондық пошта жүйелерінде пайдалану үшін жазылған. Атауы бастапқыда EXperimental Internet Mailer деген мағынаны білдірген. Ол бастапқыда Smail 3 ескі почталық агентінің негізінде құрылған, бірақ кейіннен Smail 3-тің дизайны мен философиясынан едәуір өзгеше болды.
The first version of Exim was written in 1995 by Philip Hazel for use in the University of Cambridge Computing Service’s e mail systems. The name initially stood for EXperimental Internet Mailer. It was originally based on an older MTA, Smail 3, but it has since diverged from Smail 3 in its design and philosophy.
Жобалық үлгі
Exim, Smail сияқты, әлі де Sendmail дизайн үлгісін сақтайды, онда бір ғана бинарлық файл MTA-ның барлық мүмкіндіктерін басқарады. Exim-де артықшылықтарды алу және жоғалту кезеңдері анық белгіленген. Exim-нің қауіпсіздігіне қатысты бірнеше жыл бойы бірқатар маңызды қауіпсіздік мәселелері анықталды. Жаңадан жобаланған 4-ші нұсқасы шыққаннан бері төрт қашықтықтан кодты орындауға мүмкіндік беретін қате және біреуі – жұмыс істеп тұрған конфигурацияларға қатысты сенім деңгейіне байланысты түсініксіздік болды; соңғысы 4.73 нұсқасындағы қауіпсіздік бұғаттауы арқылы түзетілді, бұл Exim-нің жұмыс конфигурацияларымен кері үйлесімділігін бұзған сирек кездесетін жағдайлардың бірі.
Exim, like Smail, still follows the Sendmail design model, where a single binary controls all the facilities of the MTA. Exim has well defined stages during which it gains or loses privileges. Exim's security has had a number of serious security problems diagnosed over the years. Since the redesigned version 4 was released there have been four remote code execution flaws and one conceptual flaw concerning how much trust it is appropriate to place in the run time user; the latter was fixed in a security lockdown in revision 4.73, one of the very rare occasions when Exim has broken backwards compatibility with working configurations.
Конфигурация стильдері
Экзим конфигурациясының екі негізгі стилі бар. Түпкілікті стиль Экзим конфигурациясын бір файлда сақтайды, ал сыртқы файлдар дерек көзі ретінде ғана қолданылады; бұл Филип Хейзелдің қалауларымен және өнімділік туралы ескертпелерімен күшті байланысты, себебі конфигурациялық файл әрбір exec кезінде қайта оқылады, бұл кіріс байланыстарын қабылдау және хаттарды жеткізу кезінде болады. Екінші, жиі кездесетін стиль – Debian стилі, ол орнатылған қосымшаның әкімшіге конфигурациялық файлдарды өңдеуге рұқсат бермей, автоматты түрде электрондық пошта интеграциясын қамтамасыз етуіне мүмкіндік беру үшін жасалған. Осы стильдің бірнеше нұсқасы бар және Debian өздерінің тәсілдерін пакеттерінің құрамында құжаттамамен ұсынады. Бұл тәсілдерде, конфигурация фрагменттері бар үлгілер мен каталогтармен бірге Exim конфигурациялық файлын құру үшін debconf конфигурациялық файлы қолданылады. Мета-конфигурация, экзим қадағалаушысы шақырылғанда конфигурациялық файлдарды қайта өңдейді, нәтижесінде экзим бинарлық файлы қолданатын жалғыз конфигурациялық файл жасалады. Debian тәсілі Экзимнен едәуір өзгеше болғандықтан, ресми Экзим пошталық тізімдерінде Debian тәсіліне қолдаудың жетіспеуі жиі кездеседі, адамдарға Debian сұрақтарын Debian басқарылатын пошталық тізімінде қоюға кеңес беріледі. Ubuntu пакеттері де пайдаланушыларға Debian пошталық тізімін пайдалануды ұсынады.
There are two main schools of configuration style for Exim. The native school keeps the Exim configuration in one file and external files are only used as data sources; this is strongly influenced by Philip Hazel's preferences and notes on performance as the configuration file is re read at every exec, which happens post fork for receiving inbound connections and at delivery. The second commonly encountered style is the Debian style which is designed to make it easier to have an installed application automatically provide mail integration support without having the administrator edit configuration files. There are a couple of variants of this and Debian provide documentation of their approach as part of the packages. In these approaches, a debconf configuration file is used to build the Exim configuration file, together with templates and directories with configuration fragments. The meta config is tuned with macros which have names starting When the supervisor for exim is invoked it re processes the configuration files producing a single file configuration that the exim binary uses. Because the Debian approach diverges significantly from the Exim one it is common to find a lack of support for the Debian approach on the regular Exim mailing lists, with people advised to ask Debian questions on the Debian managed mailing list. The Ubuntu packaging still advises users to use the Debian mailing list.
Құжаттамалық
Exim кең және толыққанды құжаттамаға ие; егер қандай да бір мүмкіндік немесе әрекет құжатталмаса, ол қате деп есептеледі. Құжаттама The Exim Specification және екі қосымша файлдан тұрады: болашақта жойылуы мүмкін мүмкіндіктерге арналған эксперименттік спецификация және "NewStuff", ол негізгі спецификацияға толық енбеген жаңа өзгерістерді қадағалайды. Exim Specification бірнеше форматта қолжетімді, оның ішінде HTML және жылдам іздеу үшін қарапайым мәтін форматында. Құжатты дайындау жүйесі қарапайым мәтін форматының ыңғайлы болуын қамтамасыз етеді.
Exim has extensive and exhaustive documentation; if a feature or some behaviour is not documented then this is classed as a bug. The documentation consists of The Exim Specification and two ancillary files: the experimental specification for features that might disappear and "NewStuff", which tracks very recent changes that might not have been fully integrated into the main specification. The Exim Specification is available in multiple formats, including online in HTML and in plain text for fast searching. The document preparation system ensures that the plain text format is highly usable.
Өнер көрсету
Exim қарбалас орталарда қолданылған, сағатына мыңдаған электрондық хаттарды тиімді түрде өңдей алады. Exim электрондық хаттарды кезекке қоймай, дереу жеткізуге арналған. Дегенмен, кезектер үлкен болғанда (әдеттегі аз трафикті сайттарда сирек кездеседі, бірақ жоғары трафикті сайттарда жиі болуы мүмкін) кезек өңдеудің өнімділігі салыстырмалы түрде нашар. Qmail, Postfix және ZMailer-ден айырмашылығы, Exim-де орталық кезек басқарушысы жоқ (яғни qmail send, qmgr немесе scheduler-ге баламасы). Сондықтан кезек өңдеудің орталықтандырылған жүктеме теңгерімі жоқ (бұл бір кезек элементін қайта-қайта өңдеуге кеткен уақыттың артық болуына әкеледі). Жүйелік қашықтан тасымалдаудың бір мезгілделігі әдепкі бойынша шектелмейді (бір доменге бірнеше хабарлама бірден жіберілген кезде "көктегі қора" мәселесіне ұшырауы мүмкін), бірақ конфигурация арқылы шектеуге болады. Филип Хейзелдің сөздерімен айтқанда:
Exim has been deployed in busy environments, often handling thousands of emails per hour efficiently. Exim is designed to deliver email immediately, without queueing. However, its queue processing performance is comparatively poor when queues are large (which happens rarely on typical low traffic sites but can happen regularly on high traffic sites). Unlike qmail, Postfix, and ZMailer, Exim does not have a central queue manager (i. e. an equivalent of qmail send, qmgr, or scheduler). There is thus no centralized load balancing of queue processing (leading to disproportionate amounts of time being spent on processing the same queue entries repeatedly). System wide remote transport concurrency is unlimited by default (leading to a "thundering herd problem" when multiple messages addressed to a single domain are submitted at once) but can be limited by the configuration. In Philip Hazel's own words:
"Негізгі мәселе – Exim кезек үнемі өте үлкен болатын ортада жақсы өнім көрсетпейді. Ол осы мақсатта жасалмаған, кезектерден хабарларды жіберу әрқашан қалыпты жағдай емес, ерекше жағдай ретінде қарастырылған." 1997 жылы Хейзел Генри Спенсер жазған Exim-нің POSIX тұрақты өрнектер кітапханасын PCRE (Perl Compatible Regular Expressions) деп аталатын өзі әзірлеген жаңа кітапханамен алмастырды. Perl тұрақты өрнектері POSIX және басқа да кең таралған тұрақты өрнектерге қарағанда әлдеқайда қуатты, ал PCRE Exim-нен басқа да көптеген қолданбаларда танымал болды. 2021 жылы (4.95 нұсқасынан кейін) Exim PCRE2-ге көшті.
"The bottom line is that Exim does not perform particularly well in environments where the queue regularly gets very large. It was never designed for this; deliveries from the queue were always intended to be 'exceptions' rather than the norm." In 1997, Hazel replaced Exim's POSIX regular expression library written by Henry Spencer with a new library he developed called PCRE (Perl Compatible Regular Expressions). Perl regular expressions are much more powerful than POSIX and other common regular expressions, and PCRE has become popular in applications other than Exim. In 2021 (after the 4.95 release)
Exim transitioned to PCRE2.
Жаңартулар
Тарихи тұрғыдан Exim ерекше нұсқалау схемасын қолданды, онда бірінші ондық сан тек негізгі құжаттама толық жаңартылған кезде ғана жаңартылатын болды; сол уақытқа дейін өзгерістер NewStuff файлында жинақталып отырды. Осы себепті, 0.01 нұсқасының өзгеруі маңызды өзгерістерді білдіруі мүмкін, бірақ олар міндетті түрде толық құжатталмаған болуы мүмкін. 2005 жылы Exim нұсқаларын нөмірлеуді өзгерту мәселесі талқыланды. Соңғы кезде Exim үшін құжат дайындау жүйесі жаңартылды және өзгерістер бірден Exim спецификациясына енгізілуі мүмкін. 4.70 нұсқасы 4.69 нұсқасынан табиғи түрде туындады, ал 4.6x нұсқалары жаңартылған құжаттамамен жабдықталды. Филип Хейзел 2007 жылы Кембридж университетінен зейнетке шықты және Exim-ді күтіп-ұстау жұмысы күтіп-ұстаушылар тобына жүктелді. Exim әлі де белсенді түрде күтіліп, жиі жаңа нұсқалары шығарылуда.
Historically, Exim used a peculiar version numbering scheme where the first decimal digit is updated only whenever the main documentation is fully up to date; until that time, changes were accumulated in the file NewStuff. For this reason, a 0.01 version change can signify important changes, not necessarily fully documented. In 2005, changes to Exim's version numbering were on the table of discussion. In more recent times, the document preparation system for Exim has been overhauled and changes are much more likely to just go immediately into The Exim Specification. The 4.70 release just followed on naturally from 4.69 and the 4.6x releases had up to date documentation. Philip Hazel retired from the University of Cambridge in 2007 and maintenance of Exim transitioned to a team of maintainers. Exim continues to be maintained actively, with frequent releases.