xmail-1.22

所属分类:Email服务器
开发工具:Visual C++
文件大小:484KB
下载次数:421
上传日期:2006-06-11 19:27:56
上 传 者huangjz
说明:  互联网和内联网上的邮件服务器,支持 SMTP、POP、多域名、SMTP 转发校验、RBL 保护、外部 POP3 账户同步、更名、定制邮件处理、过滤、列表、远程管理、交换、登录等等。它虽然没有一个华丽的外表,但足以应付一般的应用。
(Internet and Intranet web-based mail server to support SMTP, POP, multi-domain, SMTP forward-checking, RBL protection, external synchronization POP3 accounts, renamed, custom mail processing, filtering, tabulating, remote management, exchange, etc. Login. Although it's not a beautiful appearance, but sufficient for most applications.)

文件列表:
xmail-1.22\AliasDomain.cpp (16376, 2005-10-12)
xmail-1.22\AliasDomain.h (1737, 2005-10-12)
xmail-1.22\AppDefines.h (1227, 2005-10-12)
xmail-1.22\Base64Enc.cpp (4013, 2005-10-12)
xmail-1.22\Base64Enc.h (1148, 2005-10-12)
xmail-1.22\BuffSock.cpp (7626, 2005-10-12)
xmail-1.22\BuffSock.h (2018, 2005-10-12)
xmail-1.22\CommTypes.h (1100, 2005-10-12)
xmail-1.22\COPYING (18009, 2005-10-12)
xmail-1.22\CTRLClient.cpp (12363, 2005-10-12)
xmail-1.22\CTRLSvr.cpp (93907, 2005-10-12)
xmail-1.22\CTRLSvr.h (1415, 2005-10-12)
xmail-1.22\DNS.cpp (46493, 2005-10-12)
xmail-1.22\DNS.h (3115, 2005-10-12)
xmail-1.22\DNSCache.cpp (10472, 2005-10-12)
xmail-1.22\DNSCache.h (1175, 2005-10-12)
xmail-1.22\DynDNS.cpp (4815, 2005-10-12)
xmail-1.22\DynDNS.h (1218, 2005-10-12)
xmail-1.22\Errors.cpp (18312, 2005-10-12)
xmail-1.22\Errors.h (11596, 2005-10-12)
xmail-1.22\ExtAliases.cpp (18899, 2005-10-12)
xmail-1.22\ExtAliases.h (1818, 2005-10-12)
xmail-1.22\Filter.cpp (23505, 2005-10-12)
xmail-1.22\Filter.h (2180, 2005-10-12)
xmail-1.22\FINGSvr.cpp (16980, 2005-10-12)
xmail-1.22\FINGSvr.h (1370, 2005-10-12)
xmail-1.22\LMAILSvr.cpp (19446, 2005-10-12)
xmail-1.22\LMAILSvr.h (1295, 2005-10-12)
xmail-1.22\MailConfig.cpp (1947, 2005-10-12)
xmail-1.22\MailConfig.h (1198, 2005-10-12)
xmail-1.22\Maildir.cpp (5818, 2005-10-12)
xmail-1.22\Maildir.h (1321, 2005-10-12)
xmail-1.22\MailDomains.cpp (14770, 2005-10-12)
xmail-1.22\MailDomains.h (1761, 2005-10-12)
xmail-1.22\MailSvr.cpp (35416, 2005-10-12)
xmail-1.22\mailsvr.dsp (10525, 2005-10-12)
xmail-1.22\mailsvr.dsw (1348, 2005-10-12)
xmail-1.22\MailSvr.h (1724, 2005-10-12)
xmail-1.22\mailsvr.opt (77312, 2005-10-12)
xmail-1.22\mailsvr.plg (19002, 2005-10-12)
... ...

=head1 NAME XMail - Internet/Intranet mail server. [L] =head1 LICENSE This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation (L); either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. you should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA [L] =head1 OVERVIEW XMail is an Internet and Intranet mail server featuring an SMTP server, POP3 server, finger server, multiple domains, no need for users to have a real system account, SMTP relay checking, RBL/RSS/ORBS/DUL and custom (IP based and address based) spam protection, SMTP authentication (PLAIN LOGIN CRAM-MD5 POP3-before-SMTP and custom), a POP3 account synchronizer with external POP3 accounts, account aliases, domain aliases, custom mail processing, direct mail files delivery, custom mail filters, mailing lists, remote administration, custom mail exchangers, logging, and multi-platform code. XMail sources compile under GNU/Linux, FreeBSD, OpenBSD, NetBSD, OSX, Solaris and NT/2K. This server born due to the need of having a free and stable Mail Server to be used inside my old company, which used a Windows Network. I don't like to reinvent the wheel but the need of some special features drive me to start a new project. Probably if I could use a Linux server on my net, I would be able to satisfy my needs without write code, but this is not my case. It should be also portable to other OSs, like Linux and other Unixes. Another reason that drove me to write XMail is the presence of the same steps in setting up a typical mail server, ie: sendmail + qpopper + fetchmail if one needs SMTP, POP3 and external synchronization, or: sendmail + qpopper for only SMTP and POP3 (I've quoted sendmail, qpopper and fetchmail, but there are many other packages you can use to reach these needs). With XMail you get an all-in-one package with a central administration that can simplify the above common steps. The first code of XMail Server is started on Windows NT and Linux, and now, the FreeBSD and Solaris version ready. The compilers supported are gcc for Linux, FreeBSD, OpenBSD and Solaris and M$ Visual C++ for NT/2K. [L] =head1 VERSION =head2 current 1.22 =head2 release type Gnu Public License L =head2 release date Oct 12, 2005 =head2 project by Davide Libenzi L =head2 credits Michael Hartle Shawn Anderson Dick van der Kaaden Beau E, Cox =head2 warning ************************************************************ * <> * * If you're upgrading an existing version of XMail it's * * strongly suggested that you read all the ChangeLog.txt * * notes that range from existing version to the new one. * ************************************************************ =for html

See the Change Log.

[L] =head1 DOCUMENTATION CONVENTIONS This document contains various examples of entries you must make to the XMail configuration tables. These examples are written in a mono-spaced font like this. The prototype statement is shown with explicit 'B<[TAB]>' and 'B<[NEWLINE]>' characters: "ali***omain"[TAB]"realdomain"[NEWLINE] while examples omit these characters: "simpson.org" "simpson.com" "*.homer.net" "homer.net" 'B' When a protype or example statement is too long to easily be shown on the screen or printed, the line is split into multiple lines by showing 'B<=>>' at the end of continued lines and indenting the continuation line(s): "domain"[TAB]"account"[TAB]"enc-passwd"[TAB]"account-id"[TAB]"account-dir"[TAB]=> "account-type"[NEWLINE] 'B CHARACTERS. ENTER THE ENTIRE ENTRY AS ONE LINE.>' [L] =head1 FEATURES =over 4 =item * ESMTP server =item * POP3 server =item * Finger server =item * Multiple domains =item * Users don't need a real system account =item * SMTP relay checking =item * SMTP RBL maps check (rbl.maps.vix.com) =item * SMTP RSS maps check (relays.mail-abuse.org) =item * SMTP ORBS relay check (relays.orbs.org) =item * SMTP DUL map check (dialups.mail-abuse.org) =item * SMTP protection over spammers (IP based and address based) =item * SMTP authentication (PLAIN LOGIN CRAM-MD5 POP3/SMTP and custom) =item * SMTP ETRN command support =item * POP3 account synchronizer with external POP3 accounts =item * Account aliasing =item * Domain aliasing =item * Mailing lists =item * Custom mail processing =item * Locally generated mail files delivery =item * Remote administration =item * Custom mail exchangers =item * Logging =item * Multi platform =item * Domain message filters =item * Custom (external) POP3 authentication =back [L] =head1 PORTING STATUS Right now the Linux and NT ports are stable, while the Solaris, FreeBSD and OpenBSD ones have not been tested as well as the previous OSs. [L] =head1 REQUIREMENTS =over 4 =item * Any version of Linux that has glibc. =item * Windows NT with ws2_32.dll correctly installed. =item * A working DNS and gateway to the Internet (if you plan to use it). =item * To build from source for Linux you need any version of gcc and glibc installed. =item * To build from source for Windows you need MS Visual C++ (project included). =item * -or- any other working compiler that provides support for the Win32 SDK. =back [L] =head1 OBTAINING THE SOURCE Always get the latest sources at the XMail home page L because otherwise you may be using an old version. Use the correct distribution for your system and don't mix Unix files with Windows ones because this is one of the most common cause of XMail bad behavior. When you unzip (or untar) the package you've to check that the MailRoot directory contained inside the package itself is complete (look at the directory tree listed below) because some unzippers don't restore empty directories. [L] =head1 BUILD For Windows, Visual C++ project files are supplied, while for *nixes, the following options are given: [Linux] # make -f Makefile.lnx [FreeBSD] # setenv OSTYPE FreeBSD # gmake -f Makefile.bsd or (depending on the shell): # OSTYPE=FreeBSD gmake -f Makefile.bsd [OpenBSD] # setenv OSTYPE OpenBSD # gmake -f Makefile.bsd or (depending on the shell): # OSTYPE=OpenBSD gmake -f Makefile.bsd [NetBSD] # setenv OSTYPE NetBSD # gmake -f Makefile.bsd or (depending on the shell): # OSTYPE=NetBSD gmake -f Makefile.bsd [OSX] # OSTYPE=Darwin make -f Makefile.bsd or (depending on the shell): # setenv OSTYPE Darwin # make -f Makefile.bsd [Solaris] # make -f Makefile.sso Under Linux an init.d startup script is supplied (xmail) to allow you to run XMail as a standard rc? daemon. You must put it into /etc/init.d (it depends on which distro you're using) directory and then create K??xmail - S??xmail links into the proper directories. Under Windows NT/2000/XP the XMail's executable is a Win32 service by default and if you want to have it built like a standard executable you've to comment the statement: "#define SERVICE" in MainWin.cpp When it's built as a service (default) you can run: XMail --install to install XMail as a manual startup service or: XMail --install-auto to install XMail as an automatic startup service. If you run 'B<--install>' and you want XMail to run at NT boot, you must go in ControlPanel->Services and edit the startup options of XMail. Once you have the service version of XMail you can run it in a 'normal' way by executing: XMail --debug [options] [L] =head1 CONFIGURATION =head2 Linux/Solaris/FreeBSD/OpenBSD =over 4 =item 1. Build XMail. =item 2. Log as root. =item 3. Copy the supplied MailRoot directory where you want it to reside (normally /var). =item 4. Do a # chmod 700 /var/MailRoot to setup MailRoot directory access rights. =item 5. Strip XMail executables if you want to reduce their sizes (strip filename). =item 6. Copy XMail executables to /var/MailRoot/bin. =item 7. If you have 'B' installed, comment out the lines of 'B' that involve SMTP, POP3, and Finger. Restart 'B' (kill -HUP ...). =item 8. Since XMail use syslog to log messages, enable syslogd if it's not running. =item 9. Setup the 'B' configuration option (after reading the rest of this document well). =item 10. Add your users and domains (after reading the rest of this document well). =item 11. Change or comment out (#) the example account in 'B' by using non-trivial username and password. =item 12. Copy the xmail startup script to your init.d directory (it's position depends on your distro). If you've setup XMail to work in a subdirectory other than 'B' you must edit xmail startup script to customize its boot. =item 13. Use the 'B' shell script (from root user) to create SysV boot script - unless your distro has other tools to do this. =item 14. To start XMail without reboot you can run (from root): /etc/rc.d/init.d/xmail start otherwise reboot your machine. =item 15. Setup the file 'B' if you want to extend mail relaying to IPs out of the internet's private IP blocks (or you want to deny even those - that comes enabled by default with XMail). =back [L] [L] =head2 NT/Win2K =over 4 =item 1. Build XMail. =item 2. Copy the supplied MailRoot directory where you want it to reside (normally 'B'). =item 3. Setup the MailRoot directory (and subdirectories and file) permissions to allow access only to System and Administrators. Doing this you can run XMail as a console startup only if you're Administrator (service startup as System). =item 4. Copy XMail executables to 'B'. =item 5. With 'B', create 'B' key inside 'B' and then 'B' key inside 'B'. =item 6. Create a new string value named 'B' inside 'B' with value 'B'. =item 7. Optionally create a new string value named 'B' inside 'B' to store your command line options (read well the rest of this document). =item 8. Open an NT console (command prompt). =item 9. Go inside 'B' and run: XMail --install for a manual startup, or: XMail --install-auto for an automatic startup. =item 10. If you have other services that give the same functionality of XMail, that is SMTP, POP3, or Finger servers, you must stop these services. =item 11. Setup the 'B' configuration option after reading the rest of this document well. =item 12. Add your users and domains (after reading to the rest of this document well). =item 13. Setup file permissions of the 'B' directory to grant access only to 'B' and 'B'. =item 14. Change or comment out (#) the example account in ctrlaccounts.tab by using a non-trivial username and password. =item 15. To start XMail without reboot you can go to: ControlPanel -> Services -> XMail server and start the service, otherwise reboot your machine. =item 16. Setup the file 'B' if you want to extend mail relaying to IPs out of the internet's private IP blocks (or you want to deny even those - that comes enabled by default with XMail). =back [L] [L] =head2 Environment variables =over 4 =item [MAIL_ROOT] If you want to start XMail as a simple test you must setup an environment variable MAIL_ROOT that point to the XMail Server root directory. Linux/etc.: export MAIL_ROOT=/var/XMailRoot Windows: set MAIL_ROOT=C:\MailRoot =item [MAIL_CMD_LINE] Let the user to specify extra command line parameters (they will be appended to the ones specified in the command line). =item [XMAIL_PID_DIR] Let the user to specify the PID directory (Unix only ports). The specified directory must NOT have the final slash (/) appended to the path. =back [L] [L] =head2 MailRoot structure Mail root directory contain these files: aliases.tab ali***omain.tab domains.tab dnsroots extaliases.tab mailusers.tab message.id pop3links.tab server.tab smtpgw.tab smtpfwd.tab smtprelay.tab smtpauth.tab smtpextauth.tab userdef.tab ctrlaccounts.tab spammers.tab spam-address.tab pop3.ipmap.tab smtp.ipmap.tab ctrl.ipmap.tab finger.ipmap.tab filters.in.tab filters.out.tab filters.pre-data.tab filters.post-data.tab smtp.ipprop.tab and these directories: bin cmdaliases tabindex dnscache mx ns custdomains filters logs pop3locks pop3linklocks pop3links spool local temp 0 0 mess rsnd info temp slog lock cust froz ... ... userauth pop3 smtp domains and for each domain DOMAIN handled a directory (inside domains): DOMAIN userdef.tab mailproc.tab [ optional ] inside of which reside, for each account ACCOUNT: ACCOUNT user.tab mlusers.tab [ mailing list case ] mailproc.tab [ optional ] pop3.ipmap.tab [ optional ] and mailbox for mailbox structure, while: Maildir tmp new cur for Maildir structure. [L] [L] =head2 Configuration tables TAB ('B') files are text files (in the sense meant by the OS in use: for NT and for Linux) with this format: "value1"[TAB]"value2"[TAB]...[NEWLINE] The following sections explain each file's structure and use. =over 4 =item L<"ALIASES.TAB"> =item L<"ALIASDOMAIN.TAB"> =item L<"DOMAINS.TAB"> =item L<"DNSROOTS"> =item L<"EXTALIASES.TAB"> =item L<"MAILUSERS.TAB"> =item L<"MESSAGE.ID"> =item L<"POP3LINKS.TAB"> =item L<"SERVER.TAB"> =item L<"SMTPGW.TAB"> =item L<"SMTPFWD.TAB"> =item L<"SMTPRELAY.TAB"> =item L<"SMTPAUTH.TAB"> =item L<"SMTPEXTAUTH.TAB"> =item L<"USERDEF.TAB"> =item L<"CTRLACCOUNTS.TAB"> =item L<"SPAMMERS.TAB"> =item L<"SPAM-ADDRESS.TAB"> =item L<"POP3.IPMAP.TAB"> =item L<"SMTP.IPMAP.TAB"> =item L<"CTRL.IPMAP.TAB"> =item L<"FINGER.IPMAP.TAB"> =item L<"USER.TAB"> =item L<"MLUSERS.TAB"> =item L<"MAILPROC.TAB"> =item L<"SMTP.IPPROP.TAB"> =item L<"FILTERS.IN.TAB"> =item L<"FILTERS.OUT.TAB"> =item L<"FILTERS.PRE-DATA.TAB"> =item L<"FILTERS.POST-DATA.TAB"> =back end html [L] [L] =head3 ALIASES.TAB "domain"[TAB]"alias"[TAB]"realaccount"[NEWLINE] Example: "home.bogus" "davidel" "dlibenzi" define 'davidel' as alias for 'dlibenzi' in 'home.bogus' domain. "home.bogus" "foo*bog" "homer@internal-domain.org" define an alias for all users whose name starts with 'B' and ends with 'B' that point to the locally handled account 'Binternal-domain.org>'. "home.bogus" "??trips" "travels" define an alias for all users whose names start with any two chars and end with 'B'. You can have widcard even in the domain field, as: "*" "postmaster" "postmaster@domain.net" You 'B' edit this file while XMail is running because it is an indexed file. [L] [L] [L] =head3 ALIASDOMAIN.TAB "ali***omain"[TAB]"realdomain"[NEWLINE] where 'B' can use wildcards: "simpson.org" "simpson.com" "*.homer.net" "homer.net" The first line defines 'B' as an alias of 'B' while the second remaps all subdomains of 'B' to 'B'. You 'B' edit this file while XMail is running because it is an indexed file. [L
] [L] [L] =head3 DOMAINS.TAB "domain"[NEWLINE] defines domains handled by the server. [L
] [L] [L] =head3 DNSROOTS host This is a file that lists a root name server in each line (this is not a TAB file). This can be created from a query via nslookup for type=ns and host = '.'. [L
] [L] [L] =head3 EXTALIASES.TAB "external-domain"[TAB]"external-account"[TAB]"local-domain"[TAB]"local-user"[NEWLINE] Example: "xmailserver.org" "dlibenzi" "home.bogus" "dlibenzi" This file is used in configurations in which the server does not run directly on Internet (like my case) but acts as internal mail exchanger and external mail gateway. This file defines 'Return-Path: <...>' mapping for internal mail delivery. If you are using a Mail client like Outlook, Eudora, KMail ... you have to configure your email address with the external account say 'dlibenziE<***>xmailserver.org'. When you post an internal message to 'fooE<***>home.bogus' the mail client puts your external email address ('dlibenziE<***>xmailserver.org') in the 'MAIL FROM: <...>' SMTP request. Now if the user 'foo' replies to this message, it replies to 'dlibenziE<***>xmailserver.org', and then is sent to the external mail server. With the entry above in 'B' file the 'Return-Path: <...>' field is filled with 'dlibenziE<***>home.bogus' that leads to an internal mail reply. You 'B' edit this file while XMail is runn ... ...
近期下载者

相关文件


收藏者