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 ... ...
近期下载者:
相关文件:
收藏者: