Создание WebMail на базе TWIG 1. OS Unix и почтовая система. 2. Компоненты почтовой системы. 2.1. MTA и SMTP. 2.2. MUA и POP3/IMAP. 2.3. Известные MTA/MUA агенты и POP3/IMAP пакеты. 3. Наиболее известные системы WebMail. 4. Пример сборки, установки и настройки WebMail интерфейса на базе TWIG в OS FreeBSD. 4.1. Коротко о сборке sendmail.cf во FreeBSD. 4.2. Установка и настройка POP3/IMAP на базе Вашингтонского IMAP-UW. 5. Установка и настройка WWW Сервера на базе Apache. 5.1. Установка и настройка Apache с поддержкой SSL. 5.2. Установка дополнительных Apache DSO модулей (PHP) необходимых для WebMail. 6. Ссылки. 7. Благодарности. 1. OS Unix и почтовая система. Одним из исключительных достоинств Unix-like Операционных систем является наличие почтовой службы для обмена сообщениями - письмами, как между пользователями одного компьютера, так и с пользователями других компьютеров в сети. Особенную актуальность работа почтовых систем приобрела с рождением Internet, единой глобальной, мировой сети. Благодаря сетевым коммуникационным протоколам TCP/IP и UUCP (Unix-to-Unix Copy Program) появилась уникальная возможность быстрой и надежной связи между компьютерами в сетях. В свою очередь для работы с почтой были разработаны протоколы удаленного чтения: POP2/3 (Post Office Protocol) и IMAP (Internet Message Access Protocol) и пересылки созданных почтовых сообщений между компьютерами сети: SMTP (SIMPLE MAIL TRANSFER PROTOCOL). В настоящее время невозможно представить себе комплексы информационных и услуг связи без электронной почты. Итог: Работа электронной почты состоит из комплекса следующих технологий: транспортная технология - программы MTA (Mail Transfer Agent) по протоколам SMTP или UUCP передают почту между компьютерами сети, MUA (Mail User Agent) - программы для создания, чтения почты по протоколам POP3/IMAP и передачи их по SMTP MTA программам для доставки адресатам. 2. Компоненты почтовой системы. Зная в общих чертах как работает почтовая служба internet, рассмотрим отдельные компненты целостной системы, но прежде, напомним как формируются адреса электронной почты. Как известно, протокол TCP/IP объединил большое количество разнородных сетей и операционных систем со своими почтовыми службами и специфичным форматом электронных почтовых адресов (BITNET, VAX/VMS и тд и тп). Мы остановимся лишь на формате электронных адресов актуальных в наше время, uucp, internet и их смешанном виде. Примеры: Internet-Style: - lavr@dubna.su - lavr@unix1.jinr.ru - Andrey.Lavrentyev@jinr.ru - Andrey Lavrentyev- lavr@dubna.su (Andrey Lavrentyev) - lavr%blues@dubna.su адрес состоит из двух частей разделенных символом коммерческая at "@": - левая часть определяет имя адресата на локальной системе - правая часть определяет доменное имя в котором находится адресат В адресе запрещено использовать пробелы и некоторые другие спец.символы. Имя адресата в примерах: - Andrey Lavrentyev - lavr@dubna.su (Andrey Lavrentyev) игнорируется при разборке адреса программами MTA, используются только e-mail адреса формата name@host.domain.name или name@subdomaine.domain.name или name@domain.name Адрес lavr%blues@dubna.su можно интерпретировать как: - lavr - локальный пользователь хоста или поддомена blues - dubna.su - в домене dubna.su UUCP-Style: - sunct0!lavr - sunct0!unix1!lavr Правая часть определяет адресата локального хоста, а левая - маршрут прохождения по UUCP. Если локальная сеть или компьютер имеет выход в мир через UUCP, то в этом случае, почта передается с хоста на хост и тд и тп, предпоследним будет хост содержащий локального пользователя и последним сам адресат, например: - sunct0!unix1!lavr где lavr@unix1 - заданный адресат. Combined-Style: - sunct0!unix1!dubna.su!lavr - sunct0!unix1!lavr@dubna.su - sunct0!lavr%unix1@dubna.su Старайтесь не использовать смешанных форм когда в задании адреса используются символы "!", "%" и "@", последний символ имеет наивысший приоритет при разборе адреса и приведения его к канонической форме. Стандарт на адреса электронной почты, формат заголовков и тела письма - RFC822. Примечание: существует пять первых доменов верхнего уровня (историческое начало) - .gov - Government - .edu - Education - .com - Commercial - .mil - Military - .org - Organization был еще один временно: - .arpa - ARPA-Internet однако было решение добавить домены первого уровня по признаку страны с использованием двухбуквенного обозначения (географические домены), например: - .su - Soviet Union - .ru - Russian и так называемые Multiorganizations - для организаций с огромной структурой. Когда ведение службы DNS стало невозможно без распределенной организации и коммерческой выгоды, стали появляться дополнительные домены первого уровня, .biz, .info и тд и тп, вплоть до доменов в национальных кодировках. 2.1. MTA и SMTP. Почта между компьютерами в сети или между доменами, локальными сетями передается по протоколу SMTP (SIMPLE MAIL TRANSFER PROTOCOL/RFC821) так называемыми MTA (Mail Transfer Agent) программами. Это транспортный уровень передачи электронной почты. Протокол SMTP разработан давно и него есть соответствующие RFC в соответствии и следуя которым должны быть написаны программы MTA. RFC (Request For Comments) - это огромный набор документов содержащих описание протоколов, технологий и политики работы в Internet, постоянно обновляющийся и расширяющийся по мере создания, разработки и внедрения новых протоколов и технологий и необходимый как для внутренних нужд Internet, так и для собдюдения и поддержания единых стандартов необходимых для работы. Начало развития RFC было положено в 1969 году, для развития Internet (тогда еще ARPANET), спецификации технологий и протоколов Internet, как определено Internet Engineering Task Force (IETF) и ее руководящей группой IESG, и есть RFC. В настоящее время существует достаточное количество известных и популлярных MTA программ: - http://www.sendmail.org/ Sendmail - http://www.qmail.org/ Qmail - http://www.postfix.org/ Postfix - http://www.exim.org/ Exim - http://www.courier-mta.org/ Courier В данном руководстве мы будем рассматривать в качестве MTA известную программу Sendmail. В OS FreeBSD в качестве почтового транспорта, в системе по-умолчанию используется программа sendmail. Разработчики OS FreeBSD стараются создать максимум удобств для использования сложного программного обеспечения, в том числе и для sendmail. Одним из таких удобств является создание достаточно удобного интерфеса запуска-перезапуска, сборки конфигурационного файла sendmail.cf и сборки и апдейта баз sendmail'а - файл /etc/mail/Makefile (начиная с release 4.3) Коротко рассмотрим как создать нужную конфигурацию sendmail.cf используя препроцессор m4 с конфигурационным файлом для него. Сначала приведем общий алгоритм, а затем конкретные примеры и проблему с которой я столкнулся уже при работе готового комплекса WebMail: Вариант сборки sendmail.cf с использованием /etc/mail/Makefile: - создаем файл конфигурации myconfig.mc или `hostname`.mc или копируем freebsd.mc в один из предыдущих и редактируем под себя. (пример см. в Варианте ручной сборке) - указанный Makefile использует в качестве файла конфигурации: - файл заданный в переменной SENDMAIL_MC - переменная SENDMAIL_MC может быть определена: - в файле /etc/make.conf - в самом /etc/mail/Makefile SENDMAIL_MC=/etc/mail/myconfig.mc - если переменная SENDMAIL_MC заранее нигде не определена, в /etc/mail/Makefile будет создан шаблон `hostname`.mc на базе уже имеющегося в системе файла конфигурации /etc/mail/freebsd.mc - cd /etc/mail; make stop; cp sendmail.cf sendmail.cf.last; make cf; make start - смотрим сообщения об ошибках и стартанул ли сервис: ps -axuww | grep sendmail [alone]~ > telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 Contact ESMTP Co. Antispam-MTA; Non-authorized relaying DENIED. ehlo localhost 250-alone.dubna.ru Hello localhost [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-SIZE 1000000 250-DSN 250-ONEX 250-XUSR 250 HELP quit 221 2.0.0 alone.dubna.ru closing connection Connection closed by foreign host. [alone]~ > Вариант ручной сборки sendmail.cf: - создаем файл конфигурации myconfig.mc --------------------------- example myconfig.mc ------------------------------ divert(-1) # # Copyright (c) 1983 Eric P. Allman # Copyright (c) 1988, 1993 # The Regents of the University of California. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the University of # California, Berkeley and its contributors. # 4. Neither the name of the University nor the names of its contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # # This is a generic configuration file for FreeBSD 4.X and later systems. # If you want to customize it, copy it to a name appropriate for your # environment and do the modifications there. # # The best documentation for this .mc file is: # /usr/share/sendmail/cf/README or # /usr/src/contrib/sendmail/cf/README # dnl lavr: divert(-1) dont use perprocessor for this text dnl divert(0) use output/preprocessor divert(0) dnl lavr: VERSIONID - macro for SCCS or RCS version id VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.10.2.11 2001/07/14 18:07:27 gshapiro Exp $') dnl OSTYPE - use some default macro for this OS from cf/ostype OSTYPE(freebsd4) dnl lavr: use generic or your specific DOMAIN(generic) dnl Define ALL Maps, databases type see DATABASE DEFINITIONS src/README for dnl requement compile options FEATURE(access_db, `hash -o /etc/mail/access') FEATURE(mailertable, `hash -o /etc/mail/mailertable') FEATURE(virtusertable, `hash -o /etc/mail/virtusertable') dnl Define to always add our domainname (don't allow name@localhost for local) FEATURE(always_add_domain) dnl USE BlackList /etc/mail/access - disable mail for users FEATURE(blacklist_recipients) dnl Disable UUCP FEATURE(nouucp,reject) dnl use this for procmail as LDA(mbox delivery), probably comment local_lmtp FEATURE(local_lmtp) dnl FEATURE(local_procmail) dnl Masquarade Domain dnl FEATURE(`masquerade_entire_domain') dnl lavr: don't all our domains masquarade, only class{M} MASQUERADE_DOMAIN dnl FEATURE(limited_masquerade) dnl do envelope e-mail address for has chance to see it dnl FEATURE(`masquerade_envelope')dnl dnl lavr: don't masquerade_envelope some users dnl EXPOSED_USER(`usernames') dnl MASQUERADE_AS(`domainname') dnl MASQUERADE_DOMAIN(`whichdomain') dnl MASQUERADE_DOMAIN_FILE(/etc/mail/sendmail.cM) dnl lavr: don't masquerade some hosts or domain dnl MASQUERADE_EXCEPTION(`host.domain') dnl see cf/README Relay and ANTI-SPAM sections dnl FEATURE(relay_based_on_MX) dnl FEATURE(relay_entire_domain) FEATURE(relay_hosts_only) dnl lavr: don't use this with full name userdb Andrey.Lavrentyev => lavr dnl see also define(`LOCAL_RELAY', `mailer:hostname') dnl define(`MAIL_HUB', `mailer:hostname') dnl FEATURE(stickyhost) dnl Delay_all_checks see ANTI-SPAM CONFIGURATION CONTROL at cf/README FEATURE(`delay_checks') dnl lavr: welcome to Russian http://www.drbl.ofisp.org/ dnl maillist http://www.ofisp.org/antispam.html dnl lavr, below cool links about alive anti-spam databases and it's compare dnl http://www.sdsc.edu/~jeff/spam/Blacklists_Compared.html dnl http://www.declude.com/JunkMail/Support/ip4rinfo.htm dnl http://www.declude.com/JunkMail/Support/ip4r.htm dnl USE Anti-Spam Databeses dnl below use dnsbl with it's responds FEATURE(dnsbl) dnl Mail-Abuse request payment - not free dnl Alternatively, you can provide your own rejection message for the RBL: dnl FEATURE(dnsbl, `blackholes.mail-abuse.org', `"550 Mail from " $&{client_addr} " rejected, see http://mail-abuse.org/cgi-bin/lookup?" $&{client_addr}') dnl Other DNS based black hole lists dnl -------------------------------- dnl MAPS Relay Spam Stopper (RSS): http://mail-abuse.org/rss/ dnl FEATURE(dnsbl, `relays.mail-abuse.org', `"550 Mail from " $&{client_addr} " rejected; see http://mail-abuse.org/cgi-bin/nph-rss?" $&{client_addr}') dnl MAPS Dial-up User List (DUL): http://maps.vix.com/dul/ dnl FEATURE(dnsbl, `dialups.mail-abuse.org', `"550 Mail from dial-up rejected; see http://mail-abuse.org/dul/enduser.htm"') dnl Below some Free Anti-Spam Databases, please check it first/lavr dnl ORDB Anti-Spam Database http://www.ordb.org/ FEATURE(`dnsbl', `relays.ordb.org', `Mail rejected - see http://ordb.org/') dnl ORBZ Anti-Spam Database http://orbz.org/sysadmin-lightside.php FEATURE(dnsbl,`inputs.orbz.org', `Input Mail rejected - see http://orbz.org/') dnl uncomment below for filter output mail/lavr dnl FEATURE(dnsbl,`outputs.orbz.org', `Output Mail rejected - see http://orbz.org/') dnl RSL - old entries remove after 90 days/lavr http://relays.visi.com/ FEATURE(dnsbl,`relays.visi.com', `Mail rejected - see http://relays.visi.com/') dnl ABL - http://abl.v6net.org/ FEATURE(dnsbl,`spammers.v6net.org', `Mail rejected - see http://abl.v6net.org/') dnl SPAMCOP - http://spamcop.net/bl.shtml FEATURE(dnsbl,`bl.spamcop.net', `Spam blocked see: http://spamcop.net/bl.shtml?$&{client_addr}') dnl Summit Open Source Group - http://www.2mbit.com/sbl.php FEATURE(dnsbl, `blackholes.2mbit.com', `Blocked because of spam - see http://www.2mbit.com/whyblock.php) dnl SPEWS - http://www.spews.org/ use OSIRUSOFT databases dnl FEATURE(dnsbl, `spews.relays.osirusoft.com') dnl Spamhaus - http://spamhaus.org/sbl/howtouse.html dnl lavr: use osirusoft instead dnl FEATURE(dnsbl, `sbl.spamhaus.org') dnl FEATURE(dnsbl, `spamhaus.relays.osirusoft.com') dnl DEWS - http://dews.qmail.org/ - QMail rblsmtpd FEATURE(dnsbl, `dews.qmail.org') dnl lavr: use this at 8.12.x RHSBL new feature dnl RFC_Ignorant - http://www.rfc-ignorant.org/ dnl NJABL - http://njabl.org/use.html FEATURE(dnsbl,`dnsbl.njabl.org',`Message from $&{client_addr} rejected - see http://njabl.org/') dnl SpamBag - http://www.spambag.org/usage.html FEATURE(dnsbl,`blacklist.spambag.org', `Mail rejected - see http://www.spambag.org/') dnl Wirehub - http://basic.wirehub.nl/blackholes.html FEATURE(dnsbl,dynablock.wirehub.net', `Mail rejected - see http://basic.wirehub.nl/') dnl DNSBL - http://www.dnsbl.org/ - DNSbl FEATURE(dnsbl,`ex.dnsbl.org', `Mail rejected - see http://www.dnsbl.org/') dnl Unknown/lavr compu.net - has a update a few times per day/ please check it first dnl FEATURE(`dnsbl', `flowgoaway.com')dnl dnl FEATURE(`dnsbl', `blackhole.compu.net')dnl dnl FEATURE(`dnsbl', `pm0-no-more.compu.net')dnl dnl FEATURE(`dnsbl', `blackholes.intersil.net')dnl dnl OSIRUSOFT - http://relays.osirusoft.com/ - union anti-spam databases dnl Five in One, see below FEATURE(dnsbl, `relays.osirusoft.com', `Rejected - see http://relays.osirusoft.com/') dnl FEATURE(`dnsbl', `inputs.relays.osirusoft.com') dnl FEATURE(`dnsbl', `dialups.relays.OsiruSoft.com') dnl FEATURE(`dnsbl', `spamsites.relays.OsiruSoft.com') dnl FEATURE(`dnsbl', `spamhaus.relays.OsiruSoft.com') dnl FEATURE(`dnsbl', `spews.relays.OsiruSoft.com') dnl Dialup users should uncomment and define this appropriately dnl lavr: use this for redirect all mail-stream to MailHub dnl define(`SMART_HOST', `your.isp.mail.server') dnl Uncomment the first line to change the location of the default dnl /etc/mail/local-host-names and comment out the second line. dnl define(`confCW_FILE', `-o /etc/mail/sendmail.cw') define(`confCW_FILE', `-o /etc/mail/local-host-names') dnl Uncomment both of the following lines to listen on IPv6 as well as IPv4 dnl DAEMON_OPTIONS(`Name=IPv4, Family=inet') dnl DAEMON_OPTIONS(`Name=IPv6, Family=inet6') dnl lavr: use MSA or not dnl lavr: default - port=smtp[21], name=MTA dnl lavr: for msa - port=587, name=MSA, M=E (disable ETRN) dnl FEATURE(`no_default_msa') dnl DAEMON_OPTIONS(`Port=smtp, Name=MTA') dnl DAEMON_OPTIONS(`Port=587, Name=MSA, M=E') dnl lavr: change smtp-port listener from 25 to 1025 non-priv port dnl DAEMON_OPTIONS(`Port=1025, Name=MTA') dnl max message size = 1.5MB define(`confMAX_MESSAGE_SIZE', `1500000')dnl dnl max headers length define(`confMAX_HEADERS_LENGTH',16384) dnl max mime header length define(`confMAX_MIME_HEADER_LENGTH', `256/128') define(`confNO_RCPT_ACTION', `add-to-undisclosed') dnl don't allow spam as big rcpts list, no more than 25 recepients define(`confMAX_RCPTS_PER_MESSAGE', `25') dnl don't allow vrfy,etrn,expn dnl nobodyreturn - use it for unwant full body-letter from error/bonuce mail define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy,noetrn,nobodyreturn') define(`ALIAS_FILE', `/etc/mail/aliases,/etc/mail/majordomo.aliases') define(`confSMTP_LOGIN_MSG',`Antispam-MTA; "Non-authorized relaying DENIED." $b') define(`confSMTP_MAILER', `smtp8') dnl lavr: connections and daemon options dnl lavr: how many max daemon allowed dnl define(`confMAX_DAEMON_CHILDREN', `80')dnl dnl lavr: max number connections per second/if more than delay define(`confCONNECTION_RATE_THROTTLE', `2')dnl dnl lavr: values below for hard-loaded servers with other services dnl default confQUEUE_LA=8/confREFUSE_LA=12 dnl lavr: confQUEUE_LA - load average at which we'll queue messages dnl define(`confQUEUE_LA', `70')dnl dnl lavr: confREFUSE_LA - load average at which we'll refuse SMTP connect dnl define(`confREFUSE_LA', `40')dnl define(`confMAX_HOP',25) dnl lavr: send warning if normal message can't be delivery 1day define(`confTO_QUEUEWARN', `1d')dnl dnl lavr: send warning if urgent message can't be delivery 4hour define(`confTO_QUEUEWARN_URGENT', `4h')dnl dnl define(`confTO_QUEUEWARN_NORMAL', `1d')dnl dnl define(`confTO_QUEUEWARN_NONURGENT', `1d')dnl define(`confTO_QUEUERETURN', `5d')dnl define(`confTO_QUEUERETURN_URGENT', `2d')dnl dnl lavr: some repeat define(`confDOUBLE_BOUNCE_ADDRESS',postmaster)dnl define(`confCOPY_ERRORS_TO',postmaster)dnl dnl lavr: uncomment below for activate return-receipt-to header dnl define(`confRRT_IMPLIES_DSN',`True') MAILER(local) MAILER(smtp) dnl use this to allow delivery messages vi procmail script /etc/procmailrcs/domain-script dnl MAILER(procmail) ---------------------------- end of myconfig.mc ------------------------------- - создаем файл sendmail.cf m4 -D_CF_DIR_=/path/sendmail/cf/ /path/sendmail/cf/m4/cf.m4 myconfig.mc > sendmail.cf можно воспользоваться Makefile'ом от FreeBSD, предварительно поправив его под себя, свою систему и директорию с актуальным /path/sendmail/cf и создав /etc/mail куда его и положить: Sendmail Makefile from FreeBSD - завершаем работу sendmail kill -TERM SENDMAIL_PID - производим замену рабочего sendmail.cf на новый mv sendmail.cf sendmail.cf.last; mv sendmail.cf.new sendmail.cf - стартуем sendmail с новой конфигурацией /path/sendmail -bd -q30m - смотрим сообщения и проверяем в случае удачного запуска: [unix1]~ > telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 unix1.jinr.dubna.su ESMTP Sendmail 8.11.6/8.11.2; Tue, 26 Mar 2002 16:42:29 +0300 (MSK) help 214-2.0.0 This is sendmail version 8.11.6 214-2.0.0 Topics: 214-2.0.0 HELO EHLO MAIL RCPT DATA 214-2.0.0 RSET NOOP QUIT HELP VRFY 214-2.0.0 EXPN VERB ETRN DSN AUTH 214-2.0.0 STARTTLS 214-2.0.0 For more info use "HELP ". 214-2.0.0 To report bugs in the implementation send email to 214-2.0.0 sendmail-bugs@sendmail.org. 214-2.0.0 For local information send email to Postmaster at your site. 214 2.0.0 End of HELP info help ehlo 214-2.0.0 EHLO 214-2.0.0 Introduce yourself, and request extended SMTP mode. 214-2.0.0 Possible replies include: 214-2.0.0 SEND Send as mail [RFC821] 214-2.0.0 SOML Send as mail or terminal [RFC821] 214-2.0.0 SAML Send as mail and terminal [RFC821] 214-2.0.0 EXPN Expand the mailing list [RFC821] 214-2.0.0 HELP Supply helpful information [RFC821] 214-2.0.0 TURN Turn the operation around [RFC821] 214-2.0.0 8BITMIME Use 8-bit data [RFC1652] 214-2.0.0 SIZE Message size declaration [RFC1870] 214-2.0.0 VERB Verbose [Allman] 214-2.0.0 ONEX One message transaction only [Allman] 214-2.0.0 CHUNKING Chunking [RFC1830] 214-2.0.0 BINARYMIME Binary MIME [RFC1830] 214-2.0.0 PIPELINING Command Pipelining [RFC1854] 214-2.0.0 DSN Delivery Status Notification [RFC1891] 214-2.0.0 ETRN Remote Message Queue Starting [RFC1985] 214-2.0.0 STARTTLS Secure SMTP [RFC2487] 214-2.0.0 AUTH Authentication [RFC2554] 214-2.0.0 XUSR Initial (user) submission [Allman] 214-2.0.0 ENHANCEDSTATUSCODES Enhanced status codes [RFC2034] 214 2.0.0 End of HELP info vrfy lavr@unix1.jinr.ru 252 2.5.2 Cannot VRFY user; try RCPT to attempt delivery (or try finger) mail from: lala@sun.com 250 2.1.0 lala@sun.com... Sender ok rcpt to: lavr@unix1.jinr.ru 250 2.1.5 lavr@unix1.jinr.ru... Recipient ok rset 250 2.0.0 Reset state quit 221 2.0.0 unix1.jinr.dubna.su closing connection Connection closed by foreign host. [unix1]~ > в данном примере мы видим стандартное приглашение[prompt] sendmail'а: 220 unix1.jinr.dubna.su ESMTP Sendmail 8.11.6/8.11.2; Tue, 26 Mar 2002 16:42:29 +0300 (MSK) которое можем изменить непосредственно в sendmail.cf: # SMTP initial login message (old $e macro) #O SmtpGreetingMessage=$j Sendmail $v/$Z; $b O SmtpGreetingMessage=Antispam-MTA; "Non-authorized relaying DENIED." Кроме того полезно проверить работу выбранного метода Relay, access map и local-host-names с relay-domains. 2.2. MUA и POP3/IMAP. В отличие от MTA - транспортная часть почтовой системы, MUA - это интерфейс для пользователя, позволяющий читать, сохранять, удалять приходящие письма и формировать и отправлять по назначению собственную корреспонденцию адресатам. Разнообразие почтовых программ (MUA) может быть сколь угодно велико, но все они должны выполнять свое назначение, которое описано выше. MUA или почтовые программы, в обиходе почтовики, должны поддерживать протоколы POP3 и/или IMAP, в идеальном варианте и тот и другой, для работы с приходящей почтовой корреспонденцией - письмами и протокол SMTP для отправки своих писем. Как и в случае программ MTA, программы MUA должны быть написаны в соответствии и следуя разработанным стандартам описанных в необходимых RFC. Ниже приведены лишь некоторые RFC по протоколам и авторизации POP3 и IMAP: POP3: ----- RFC0918 RFC1081 RFC1082 RFC1225 RFC1460 RFC1725 "Post Office Protocol - Version 3" RFC1939 POP3-AUTH: ---------- RFC1734 "POP3 AUTHentication command" IMAP: ----- RFC1064 - "INTERACTIVE MAIL ACCESS PROTOCOL - VERSION 2" RFC1176 - "INTERACTIVE MAIL ACCESS PROTOCOL - VERSION 2" RFC1730 - "INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4" RFC1731 - "IMAP4 Authentication mechanisms" RFC2195 - "IMAP/POP AUTHorize Extension for Simple Challenge/Response" RFC2060 - "INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1" RFC2062 - "Internet Message Access Protocol - Obsolete Syntax" Найти эти и другие RFC можно по адресу: http://www.ripn.net:8080/nic/rfc/ 2.3. Известные MTA/MUA агенты и POP3/IMAP пакеты. Ниже перечислены наиболее популлярные MUA - почтовые программы: 1) MSDOS - ftp://ftp.kiae.su/pub/msdos/news-mail/dml207b7.exe - DMail - ftp://ftp.kiae.su/pub/msdos/news-mail/pine385.zip - Pine - ftp://ftp.kiae.su/pub/msdos/relcom/bml141b.zip - BML - ftp://ftp.kiae.su/pub/msdos/relcom/mail2/ - MAIL2 - ftp://ftp.kiae.su/pub/msdos/relcom/ache/uupc7.03 - DML/BML - http://www.washington.edu/pine/getpine/pcpine.html - Pine Home 2) Windows - Outlook Express (программа поставляемая как часть дистрибутива MS Windows) - Netscape Messenger (часть броузера Netscape Communicator) http://www.netscape.com/ http://home.netscape.com/download/index.html - download ftp://ftp.netscape.com/pub/communicator/ новый проект Netscape6 ftp://ftp.netscape.com/pub/netscape6/ - Mozilla http://www.mozilla.org/releases/ http://ftp.mozilla.org/pub/mozilla/releases/mozilla0.9.8/ - The Bat! http://www.ritlabs.com/ - http://www.washington.edu/pine/getpine/pcpine.html - Pine Home 3) Unix - http://www.washington.edu/pine/ - Pine (POP3/IMAP/SSL) - http://www.mutt.org/ - Mutt (POP3/IMAP/SSL) http://www.mutt.org.ua/download/ - Russian patches для Mutt - http://www.ozone.fmi.fi/KEH/ - Elm+ME (POP3/IMAP/SSL) Наиболее известные POP3/IMAP демоны: 3. Наиболее известные системы WebMail. 4. Пример сборки, установки и настройки WebMail интерфейса на базе TWIG в OS FreeBSD. 4.1. Коротко о сборке sendmail и sendmail.cf во FreeBSD. 4.2. Установка и настройка POP3/IMAP на базе Вашингтонского IMAP-UW. 5. Установка и настройка WWW Сервера на базе Apache. 5.1. Установка и настройка Apache с поддержкой SSL. 5.2. Установка дополнительных Apache DSO модулей (PHP) необходимых для WebMail. 6. Ссылки. 7. Благодарности.