Linux eMail Server - Mail Transfer Agent (MTA) software

Internet mail is broken down into three basic parts:
  1. MTA or Mail Transfer Agents - sendmail, qmail, etc - Links/Info
  2. Mail Retrieval Software - pop3, imap, etc - Links/Info
  3. Mail User Agent (MUA): E-Mail client - Netscape, MUTT, etc - Links/Info

Internet mail is sent from the email client to the email server which routes it to the intended destination which will also be an email server. The protocol by which the email servers communicate is called SMTP (Simple Mail Transfer Protocol) and the email server software is known as the MTA or Mail Transfer Agent. This tutorial lists the popular MTA eMail server programs used, basic Sendmail email server configuration as well as Postfix email server configuration. Also listed are Mailing List programs and the RFC's (Request For Comments) on which the internet email standards are currently or eventually based.

Tutorial Table of Contents:


Related YoLinux Tutorials:

°Mailman Installation / Configuration

°Internet Security

°Security tools

°Linux Networking

°YoLinux Tutorials Index



Free Information Technology Magazine Subscriptions and Document Downloads


Free Information Technology Software and Development Magazine Subscriptions and Document Downloads


Mail Transfer Agents (MTA):

Open Source:

Commercial MTA's:

MTA Server support software:

  • OpenGroupWare.org - Was SKYRIX groupware server, then OGo. Piggybacks on an existing SMTP server to handle mail but then provides calendar groupware and mail interface with email clients. Uses WEBDAV interface protocol.


Anti-Spam:


Open Relay Check:

Execute the following from your SMTP server:

   telnet relay-test.mail-abuse.org
This site will run a series of relay tests and return the results in the telnet session. The proper diagnosis for each test of course is "Relay access denied" and the final reply: "System appeared to reject relay attempts".


Basic Sendmail configuration:

Sendmail is the default MTA on the RedHat Linux distribution. Do NOT use linuxconf to configure sendmail as it has NOT been updated to work with current versions of sendmail!!! (The tool linuxconf is no longer included with current versions of Red Hat Linux 7.3+)

RPM packages required: sendmail, sendmail-cf and m4

Sendmail receives mail for local system user login accounts. Mail is held in a single file: /var/mail/userID

Steps to run mail server using sendmail:

  1. Required for inbound mail: The mail server must be identified by the DNS as the mail server in order to receive mail. See the YoLinux tutorial on configuring DNS.

  2. /etc/mail/local-host-names (Required) (Red Hat 7.1 - Fedora Core 3)
    /etc/sendmail.cw (Red Hat 6.x)

    This file contains all of the alternate host names of the server. (i.e. domain-name.com) Sendmail will not accept mail for a domain unless it is permitted to do so by the contents of this file.
    Sample:

    megawebhost.com
    yolinux.com
    yo-linux.com

  3. File /etc/aliases (Optional) lists alternative names for email recipients.
    Sample:
    webmaster: john, dave
    postmaster: kim, garret
    larry.anderson: larry
    moe.anderson: moe
    curly.anderson: curly
    After creation or modification one must run the command newaliases which will generate a new version of the file /etc/aliases.db There is no need to restart the sendmail daemon. The changes are picked up automatically.

  4. File /etc/mail/virtusertable (Optional) Allows the separation of emails by domain. i.e. greg@domain1.com and greg@domain2.com go to two different users greg1 and greg2.
    webmaster@domain-1.com   dave
    webmaster@domain-2.com john
    john@domain-2.com john
    @domain-2.com error:nouser User unknown
    @domain3.com mathew
    The second column is the local user, a remote forwarding email address or a mailing list entry in /etc/aliases.
    The domain "domain-2.com" will only receive email for john@domain-2.com and webmaster@domain-2.com while all other mail to this domain receives an error message.
    Convert /etc/mail/virtusertable to /etc/mail/virtusertable.db with the commands:
    • cd /etc/mail
    • make

  5. Relaying and receiving mail is controlled by the file: /etc/mail/access. By default relaying is only allowed by localhost and sendmail will accept mail from all. (Red Hat 7.1 default is more strict but the restriction is not from the access file. More below.)
    Required for outbound email. Helpful for blocking some unwanted inbound email.
    localhost.localdomain           RELAY
    localhost RELAY
    127.0.0.1 RELAY
    Generate database file:
        [root prompt]# makemap hash /etc/mail/access.db < /etc/mail/access
    The access file can be used to thwart spammers. List IP addresses or email address to deny in the file: /etc/access
    After adding entries to the access file, generate the database file with the command above.
    XXX.XXX.XXX.XXX                 REJECT
    YYY.YYY.YYY.YYY ERROR:"550 We don't accept mail from spammers"
    spammer@isp.com REJECT " Spam not accepted"
    ZZZ.ZZZ.ZZZ.ZZZ OK - Override rules and allow ZZZ.ZZZ OK - Allow from ZZZ.ZZZ.*.* network
    See the /etc/mail/access file I am currently using. It changes daily. Feel free to cut and paste this Sendmail access file to your system.
    Other access lists: Sendmail.org: More info on cf-readme (See Anti-Spam section)

  6. Sendmail must be running. See the YoLinux init tutorial to learn how the sendmail daemon can be configured to be started by the system upon system boot. This may have been configured during installation.

The default configuration is fairly secure and usable. For Red Hat 6 and earlier systems, you are ready to mail. For Red Hat 7 systems, there is one more step. See changes below required to receive mail.
Note: A user defined in the aliases file is valid for all domains hosted by the system, unless you have configured virtual hosting.


For alternate configurations change the file: sendmail.cf

The config file sendmail.cf has become so complex that most people use the m4 macro package to generate this file from a sendmail.mc file. Pre-configured ".mc" files can be found in the directory:

  • /etc/mail/ (Red Hat 9.0 - Fedora Core 3)
  • /usr/lib/sendmail-cf/cf/ (Red Hat 7.1)
  • /usr/share/sendmail-cf/cf/ (Red Hat 6.x)

Default Red Hat sendmail.cf configurations:

  • Fedora Core 3, Red Hat Enterprise Linux 4, CentOS 4:
        cd /etc/mail
    make
    (Checks for changes and rebuilds data files.)
    or perform the manual process:
        m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
  • Red Hat 9.0:
        m4 /usr/share/sendmail-cf/m4/cf.m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
  • Red Hat 7.1: You will find that the files /etc/sendmail.cf and /usr/share/sendmail-cf/cf/redhat.cf are the same and is the RedHat default.
        cd /usr/share/sendmail-cf/cf/
    m4 redhat.mc > /etc/sendmail.cf
    Note: the cf.m4 file is represented as an include file in the sendmail "mc" macro file. (include(`/usr/share/sendmail-cf/m4/cf.m4'))

  • Red Hat 6.x: You will find that the files /etc/sendmail.cf and /usr/lib/sendmail-cf/cf/redhat.cf are identical and is the RedHat default.
        cd /usr/lib/sendmail-cf/cf/
    m4 ../m4/cf.m4 redhat.mc > /etc/sendmail.cf


Change default Sendmail to allow sendmail to receive mail:

(Red Hat 7.1-7.3, 8, 9, RHEL4, Fedora Core X)
If you just installed or upgraded to red Hat 7.1 or later and noticed that your mail server does not recieve email, it is because of the Red Hat default sendmail configuration. The default configuration for Red Hat (7.1 or later) sendmail does not allow for the receiving of mail except from yourself (localhost).

Configure to receive email:

  1. Backup the files /etc/mail/sendmail.mc and /etc/sendmail.cf
  2. Edit the file /etc/mail/sendmail.mc and change/comment the line:
       From: DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
    To: dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
    or delete the line. Sendmail will then use the default which allows it to receive mail from other systems.
  3. Optional: Blacklist anti-spam options:
    To turn on the anti-spam feature of sendmail add the directive:
    • RFC-Ignorant: (Valid IP address checker)
      FEATURE(`dnsbl', `ipwhois.rfc-ignorant.org',`"550 Mail from " $&{client_addr} " refused. Rejected for bad WHOIS info on IP of your SMTP server - see http://www.rfc-ignorant.org/"')
    • Easynet: (open proxy list)
      FEATURE(`dnsbl', `proxies.blackholes.easynet.nl', `"550 5.7.1 ACCESS DENIED to OPEN PROXY SERVER "$&{client_name}" by easynet.nl DNSBL (http://proxies.blackholes.easynet.nl/errors.html)"', `')
    • ORDB: The Open Relay Database - Site no longer active. (Dec 31, 2006)
      FEATURE(`dnsbl', `relays.ordb.org', `"550 Email rejected due to sending server misconfiguration - see http://www.ordb.org/faq/\#why_rejected"')
    • Spamcop: Spammer blacklist:
      FEATURE(`dnsbl', `bl.spamcop.net', `"450 Mail from " $`'&{client_addr} " refused - see http://spamcop.net/bl.shtml"')
    • Spamhaus: A spammer blacklist:
      FEATURE(`dnsbl',`sbl.spamhaus.org',`Rejected - see http://spamhaus.org/')
    • For more info see Mail-Abuse.org: MAPS RBL

    FYI: Sendmail Anti-Spam configuration options:

    • Turn off relaying (Relaying is denied by default Red Hat configuration) Do NOT use the following directive: FEATURE(`promiscuous_relay')
    • Check sender information:
      • Accept mail from your own domain: FEATURE(`relay_entire_domain')
      • Accept relay from your mail servers listed in MX record to destination in same domain: FEATURE(`relay_based_on_MX')
      • Comment out: dnl # FEATURE(`accept_unresolvable_domains')dnl
        (RHEL4)
    • Use /etc/mail/access file to deny spammers: FEATURE(`access_db') (See above example)
    • Use Realtime Blackhole List: FEATURE(`dnsbl')
    • Limit connection rate. Useful against DoS attacks or barrages of spam:
      (Available with Sendmail version 8.13 included with RHEL4)
      • define(`confMAX_DAEMON_CHILDREN', 12)
      • define(`confCONNECTION_RATE_THROTTLE', 3)
    • Check headers. Define rule in sendmail.cf.

  4. Optional: Identify outgoing mail as coming from specified domain:
        MASQUERADE_AS(your-domain.com)
    MASQUERADE_DOMAIN(your-domain.com)
    MASQUERADE_DOMAIN(virt-domain-1.com) - Add list of other domains supported by your server here if required MASQUERADE_DOMAIN(virt-domain-2.com)
    ...
    ..
    FEATURE(masquerade_entire_domain)
    FEATURE(masquerade_envelope)
    This will override a default of localhost or node.your-domain.com to be that specified. i.e. your-domain.com. This is so that you do not look like a spammer. Domain localhost is often blocked.
  5. Generate a new configuration file: m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
  6. If sending/relaying mail I then recommend you change the line in /etc/sendmail.cf:
       Cwlocalhost.localdomain
              
    to your actual fully qualified node name (Cwnode-name.your-domain.com). This will allow you to send mail without having the mail look like it came from "localhost.localdomain" which is often blocked by spam filters.
    You can also add the statement: DMyour-domain.com
  7. Restart sendmail: /etc/rc.d/init.d/sendmail restart

Also see: Sendmail.org: Sendmail 8.9.x configuration files


[Potential Pitfall]: To comment out a line use:

  • dnl #
    OR
  • dnl
The use of only "#" will NOT work.

[Potential Pitfall]: Some distributions have a default configuration which causes failure. The /etc/hosts.deny entry ALL:ALL will cause failure to receive mail.

Notes:

  • Look for errors in /var/log/maillog
  • Red Hat/Fedora Core systems come with the user smmsp which is required for operation. Do not remove!
    smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin

Sendmail config: /etc/mail/sendmail.mc:

Directive Description
divert(-1) m4 macro directive. File output not diverted
OSTYPE(`linux') Required before definitions. Definitions tied to OSTYPE.
define('VARIABLE','VALUE') Change a setting in sendmail.
See list
undefine(`UUCP_RELAY') Remove UUCP email processing capability
undefine(`BITNET_RELAY') Remove BITNET addressed email processing
FEATURE() See list of features
FEATURE(redirect) Reject redirected email addressed to user@domain.com.REDIRECT
Message returned to announce that one should send email to address defined by alias.
FEATURE(always_add_domain) Append fully qualified domain name of host to user name.
FEATURE(use_cw_file) File /etc/sendmail.cw defines alternate names of host.
MAILER() See list of Mailers
MAILER(procmail) Defines procmail as the local mail program on server.
MAILER(smtp) Remote mail program.

dnl: m4 directive to delete whitespace in input

See Sendmail.org: cf-readme - HTML version (not as up to date)


Examples:

Directive Description
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl Disable "vrfy" so that spammers cannot "verify" typical email addresses such as info, admin, staff, etc.
define(`ALIAS_FILE', `/etc/aliases')dnl This states the obvious. Email address aliases are defined in the file: /etc/aliases
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl Execute Sendmail using the Sendmail restricted shell


Sendmail documentation:

DNS and Sendmail Presentation at LUGFest 2000 - (Star Office 5.2 "sdd" file) - More configuration insight and information.


Sendmail tools:

  • mailq : Print a summary of the mail messages queued for future delivery.
    Mail is queued in directory: /var/spool/mqueue/
  • mailstats : Display current mail statistics.
    Mail statistics stored in file: /var/log/sendmail.st/
  • purgestatmailstats : Purge mail statistics.
  • praliases : Display current mail aliases

Files used by sendmail for a mail server.


Postfix Configuration:

Postfix is infinitely configurable to suit your needs. For large corporations and ISPs, Postfix can be configured to use a mySQL backend instead of using configuration files. Thus a quick insert or delete of a record can add users, domains, etc. This tutorial configures Postfix to receive email using local configuration files.

Postfix configuration file: /etc/postfix/main.cf

(Red Hat, Fedora, Suse and Ubuntu!)

Basic:

# Common for all Postfix configurations:
smtpd_banner = $myhostname ESMTP $mail_name
biff = no
mailbox_size_limit = 0
recipient_delimiter = +
append_dot_mydomain = no
mail_spool_directory = /var/mail

Allow no relay or outbound SMTP:

Add to file main.cf:
relayhost =
mynetworks = 127.0.0.1/32
inet_interfaces = all

Receive email for local users: (multiple domains can be specified but an email sent to Michael is not distinguished between domains. One Michael for all domains.)

Add to file main.cf:
myhostname = mail.megawebhost.com
mydomain = megawebhost.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
# All domains listed in mydestination are subject to /etc/aliases mapping.
# Do not list domains to be used with virtual hosts!
mydestination = $mydomain $myhostname alternateName1 localhost.localdomain localhost

Virtual host:
(receive email for multiple domains. Users distinguished between domains. Email recipient ed@megacorp.com is different than ed@charity.com)
Add this definition to support virtual hosts:

Add to file main.cf:
# After edting file /etc/postfix/valias.txt
# run command: postmap /etc/postfix/valias.txt
# to create hash db file.
virtual_alias_maps = hash:/etc/postfix/valias.txt
# Use local unix account mailboxes for these domains
virtual_alias_domains = /etc/postfix/vhosts.txt

Add anti-SPAM measures:

Add to file main.cf:
# Place all of the restrictions into the smtpd_recipient_restrictions:
smtpd_client_restrictions =
smtpd_helo_restrictions =
smtpd_sender_restrictions =
smtpd_helo_required = yes
strict_rfc821_envelopes = yes
disable_vrfy_command = yes
unknown_address_reject_code = 554
unknown_hostname_reject_code = 554
unknown_client_reject_code = 554

smtpd_recipient_restrictions =
# permit_mynetworks,
# permit_sasl_authenticated,
reject_unauth_destination,
reject_invalid_hostname,
reject_unauth_pipelining,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
# check_client_access hash:/etc/postfix/maps/access_client,
# check_helo_access hash:/etc/postfix/maps/access_helo,
# check_sender_access hash:/etc/postfix/maps/access_sender,
check_sender_access hash:/etc/postfix/access_sender,
# check_recipient_access hash:/etc/postfix/maps/access_recipient,
reject_rhsbl_client blackhole.securitysage.com,
reject_rhsbl_sender blackhole.securitysage.com,
# reject_rbl_client relays.ordb.org, THIS SITE IS RETIRED reject_rbl_client blackholes.easynet.nl, reject_rbl_client cbl.abuseat.org, reject_rbl_client proxies.blackholes.wirehub.net, reject_rbl_client bl.spamcop.net, reject_rbl_client zen.spamhaus.org, reject_rbl_client opm.blitzed.org, reject_rbl_client dnsbl.njabl.org, reject_rbl_client list.dsbl.org, reject_rbl_client multihop.dsbl.org, reject_rbl_client dul.dnsbl.sorbs.net, permit smtpd_data_restrictions = reject_unauth_pipelining, permit
Note:
  • SpamHaus combines three blackhole lists: Exploits block list (exploited systems): xbl.spamhaus.org, Policy block list (non-MTA IP): pbl.spamhaus.org and Spamhaus block list: sbl.spamhaus.org, into one "zen.spamhaus.org".

File: /etc/postfix/vhosts.txt

    megacorp.com
charityX.org
productX.com
Domains listed here should NOT be listed with the "mydestination" directive.

File: /etc/postfix/valias.txt

This file maps email addresses to local user names:
joe@megacorp.com userjoe
joe@charityX.org userjoseph
info@productX.com userjoe
Upon creation or change, create the db file: postmap /etc/postfix/valias.txt
This creates the file /etc/postfix/valias.txt.db

File: /etc/postfix/access_sender

0.0.0.0/8       REJECT Domain MX in broadcast network
10.0.0.0/8 REJECT Domain MX in RFC 1918 private network
127.0.0.0/8 REJECT Domain MX in loopback network
169.254.0.0/16 REJECT Domain MX in link local network
172.16.0.0/12 REJECT Domain MX in RFC 1918 private network
192.0.2.0/24 REJECT Domain MX in TEST-NET network
192.168.0/16 REJECT Domain MX in RFC 1918 private network
224.0.0.0/4 REJECT Domain MX in class D multicast network
240.0.0.0/5 REJECT Domain MX in class E reserved network
248.0.0.0/5 REJECT Domain MX in reserved network

Postfix configuration tutorials:

More examples:


Postfix and Mailman email list server integration and configuration:

Postfix can be configured three different ways to interface with Mailman. The following uses the /etc/aliases file for this configuration. Requires the following main.cf configuration:

   alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
File: /etc/aliases
#
# regular aliases
#
info: user1
joe: user1
theadore: ted
#
# mailman aliases
#
mailman: "|/var/mailman/mail/mailman post mailman"
mailman-admin: "|/var/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/mailman/mail/mailman join mailman"
mailman-leave: "|/var/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/mailman/mail/mailman owner mailman"
mailman-request: "|/var/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/mailman/mail/mailman unsubscribe mailman"
#
megacorp: "|/var/mailman/mail/mailman post megacorp"
megacorp-admin: "|/var/mailman/mail/mailman admin megacorp"
megacorp-bounces: "|/var/mailman/mail/mailman bounces megacorp"
megacorp-confirm: "|/var/mailman/mail/mailman confirm megacorp"
megacorp-join: "|/var/mailman/mail/mailman join megacorp"
megacorp-leave: "|/var/mailman/mail/mailman leave megacorp"
megacorp-owner: "|/var/mailman/mail/mailman owner megacorp"
megacorp-request: "|/var/mailman/mail/mailman request megacorp"
megacorp-subscribe: "|/var/mailman/mail/mailman subscribe megacorp"
megacorp-unsubscribe: "|/var/mailman/mail/mailman unsubscribe megacorp"
#
These entries are generated by Mailman. See the YoLinux Mailman tutorial.

Links on Postfix and Mailman integration:
(Three different methodologies)

  1. Mailman configuration: part 1 - part2 - part3 (virtual hosts)
  2. Use regular expression in configuration: Nezo.net: example and tutorial.
    Example configuration including apache
  3. Python script to glue Postfix and Mailman together for domain "lists.example.com". This method does not require the creation of aliases.:


Mailing Lists:


SMTP dialog:

This is a sample of the dialog an e-mail client makes when connecting to an SMTP server for sending mail:

   telnet server-name 25     - SMTP communicates on port 25. See: /etc/services
   HELO your-domain          - This identifies the source of the mail.
   HELP                      - List the SMTP commands that are supported. (Included FYI and not part of a typical dialog)
   MAIL FROM: your-email-address
   RCPT TO: recipient-email-address
   DATA                      - End of DATA section is punctuated with a single dot on it's own line.
   Subject: E-mail-Subject
   Text of e-mail goes here
   .                         - The single dot
   QUIT
      

SMTP return codes let the e-mail client know if all went well.

See: RFC 822 for more information.


Mail headers and tracking a spammer:

Return-Path: <sender-of-email@domain-of-sender.com>    - This is the information that they provide and may easily be forged
Received: from domain-of-spammer-mail-server.com (MTA-node-name.domain-of-spammer-mail-server.com [XXX.XXX.XXX.XXX])     - Where XXX.XXX.XXX.XXX is the IP address
        by MTA-node.domain-name-of-server-receiving-spam.com (8.11.6/8.11.6) with ESMTP id fAR2XXXX2155                    of the MTA relay server used by the spammer. Block this IP.
        for <victim@isp.com>; Mon, 26 Nov 2001 20:04:23 -0600
Received: from domain-of-sender.com ([XXX.XXX.XXX.XXX]) by MTA-node-name.domain-of-spammer-mail-server.com - Where XXX.XXX.XXX.XXX is the IP address of the computer which sent (iPlanet Messaging Server 5.1 (built May 7 2001)) the email to the MTA relay. Block this as well if you want to double protect yourself. with ESMTP id <0GNG0XXXXXXXVQ@MTA-node-name.domain-of-spammer-mail-server.com> for
victim@isp.com; Tue, 27 Nov 2001 06:10:28 -0600 (CST)
Date: Tue, 27 Nov 2001 06:04:36 -0600
From: Claimed Name of Spammer <sender-of-email@domain-of-sender.com>
Subject: Re: FYI
To: victim@isp.com
The information within the "[ ]" is fairly reliable. Everything else can be set in the MTA configuration.

Links:


SMTP RFC's:

  • RFC 2645 - ON-DEMAND MAIL RELAY (ODMR) SMTP with Dynamic IP Addresses
  • RFC 2554 - SMTP Service Extension for Authentication
  • RFC2505 - Anti Spam
  • RFC 2487 - SMTP Service Extension for Secure SMTP over TLS
  • RFC 2442 - Batch SMTP Media Type
  • RFC 2197 - SMTP Service Extension for Command Pipelining
  • RFC 2034 - SMTP Service Extension for Returning Enhanced Error Codes
  • RFC 1985 - SMTP Service Extension for Remote Message Queue Starting
  • RFC 1891 - SMTP Service Extension for Delivery Status Notifications
  • RFC 1870 - SMTP Service Extension for Message Size Declaration
  • RFC 1869 - SMTP Service Extensions
  • RFC 1846 - SMTP 521 Reply Code
  • RFC 1845 - SMTP Service Extension for Checkpoint/Restart
  • RFC 1830 - SMTP Service Extensions for Transmission of Large and Binary MIME Messages
  • RFC 1652 - SMTP Service Extension for 8bit-MIMEtransport
  • RFC 1428 - Transition of Internet Mail from Just-Send-8 to 8bit-SMTP/MIME

Books on internet email programming: (Amazon)


Links:


Books:

"Sendmail"
by Bryan Costales, Eric Allman
ISBN #1565928393, O'Reilly & Associates 3 edition (December, 2002)

The most comprehensive book on Sendmail.

Amazon.com
"Sendmail Cookbook"
by Craig Hunt
ISBN #0596004710, O'Reilly & Associates 1 edition (December, 2003)

Amazon.com
"Sendmail Desktop Reference"
by Bryan Costales, Eric Allman, Gigi Estabrook (Editor)
ISBN #1565922786, O'Reilly & Associates

Amazon.com
"Sendmail: Theory and Practice"
by Frederick M. Avolio, Paul Vixie (Contributor)
ISBN #1555581277, Butterworth-Heinemann

Amazon.com
"Linux Sendmail Administration"
by Craig Hunt
ISBN #0782127371, Sybex

Amazon.com
"Postfix"
by Richard Blum
ISBN #0672321149, Sams

Amazon.com
"Linux Email"
by Black, Koetter, Hilderbrandt, McDonald, Rusenko and Taylor.
ISBN #190481137X, Packt

I reviewed this book and found it to be a very complete discussion with examples of the installation, configuration, integration and use of Postfix, Courier POP/IMAP, SquirelMail, SpamAssassin, ClamAV and Cyrus SASL. It is concise and to the point. How to configure a Linux email server for the most popular and useful server configurations. This book is specific to the components listed and will get you up and running fast.

Amazon.com
"Exim"
by Philip Hazel
ISBN #0596000987, O'Reilly & Associates

Amazon.com
"An Introduction to Qmail"
by Dave Sill
ISBN #1893115402, APress

Amazon.com
"Running qmail"
by Rich Blum, Richard Blum
ISBN #0672319454, Sams

Amazon.com
"Hewlett-Packard Announces Last Call for OpenMail Customers"
ASIN #B00005MBR4, IDC

Requires Acrobat PDF reader.

PDF document may be purchased through Amazon. (Expensive)

Amazon.com
"Stopping Spam"
by Alan Schwartz, Debby Russell (Editor), Simson Garfinkel
ISBN #156592388X, O'Reilly and Associates

Amazon.com
"Removing the Spam : Email Processing and Filtering"
by Geoff Mulligan
ISBN #0201379570, Addison-Wesley Networking Basics Series

Amazon.com


Return to http://YoLinux.com for more Linux links, information and tutorials
Return to YoLinux Tutorial Index
Feedback Form

Copyright © 2000, 2001, 2002, 2003, 2005, 2006, 2007 by Greg Ippolito