Difference between revisions of "SOHO Postfix"

From ArchWiki
Jump to: navigation, search
(moved to Mail Server category)
(redirect to Virtual user mail system: this article is out of date and everything in here is also in that article)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Mail Server]]
+
#REDIRECT [[Virtual user mail system]]
This tutorial will configure [http://www.postfix.org/ Postfix] using [http://www.mysql.com/ MySQL] as backend, [http://www.courier-mta.org/imap/ Courier-IMAP] or [http://www.dovecot.org/ Dovecot] for IMAP-SSL, [http://postfixadmin.sourceforge.net/ Postfix Admin] for virtual domains/users management, [http://spamassassin.apache.org/ Spamassassin] for spam filtering, and [http://www.squirrelmail.org/ SquirrelMail] for webmail. '''Mailing list and anti-virus are in the works.'''
 
 
 
What this tutorial '''''doesn't''''' do is a thorough explanation of how everything works with each other. If you are the curious mind, check out the project's documentations. I also expect you already have a good working Apache and MySQL servers.
 
 
 
==Required packages==
 
* postfix
 
* mysql ('''phpmyadmin''' is optional but recommended!)
 
* courier-imap
 
* dovecot
 
* courier-authlib
 
* apache
 
* php
 
* squirrelmail
 
* spamassassin
 
 
 
==Downloads==
 
* Postfix Admin
 
The latest stable release as of this writing is v2.1.0.
 
 
 
==What is Postfix?==
 
From Postfix.org...
 
<pre>
 
What is Postfix? It is Wietse Venema's mailer that started life at IBM research as an
 
alternative to the widely-used Sendmail program.
 
 
 
Postfix attempts to be fast, easy to administer, and secure. The outside has a definite
 
Sendmail-ish flavor, but the inside is completely different.
 
</pre>
 
If you want to know how exactly Postfix works, check out [http://www.linuxjournal.com/article/9454 Anatomy of Postfix]!
 
 
 
==Installation==
 
===''Software installation''===
 
Installs Arch packages with following.
 
pacman -S php mysql apache postfix dovecot courier-imap courier-authlib squirrelmail spamassassin
 
 
 
Note: postfixadmin can be found in AUR
 
 
 
Download [http://postfixadmin.sourceforge.net/ Postfix Admin], extract into '''/home/httpd/html/''' and make a symlink.
 
 
 
ln -s /home/httpd/html/postfixadmin-2.1.0 /home/httpd/html/postfixadmin
 
 
 
(there's a new folder structure for apache in Arch: the default httpd folder for html documents is ''/srv/http'')--[[User:Mvinnicius|mvinnicius]] 08:38, 31 January 2011 (EST)
 
 
 
(If you install from [[AUR]] postfixadmin can be found in '''/usr/share/webapps/postfixAdmin/''') -- [[User:Foppe|Foppe]] ([[User talk:Foppe|talk]])
 
 
 
===''General configuration''===
 
====Setup folder to store domain e-mails====
 
All your domains emails will go under '''/home/vmail/'''.
 
groupadd -g 5000 vmail
 
useradd -u 5000 -g vmail -s /sbin/nologin -d /home/vmail -m vmail
 
chmod 750 /home/vmail
 
 
 
====SSL certs====
 
Certificates generated here can be used by httpd, ftp or any other services supports SSL.
 
cd /etc/ssl/certs
 
openssl req -new -x509 -newkey rsa:1024 -days 365 -keyout server.key -out server.crt
 
When asked about "Common Name", use your FQDN. i.e. http://linuxmonkey.net
 
 
 
openssl rsa -in server.key -out server.key
 
Above removes passphrase.
 
 
 
chown nobody:nobody server.key
 
chmod 600 server.key
 
mv server.key /etc/ssl/private/
 
Above are extra securities in case you actually wants to use SSL the ''real'' way.
 
----
 
=====Courier-IMAP=====
 
Courier-IMAP's SSL cert is a little different.
 
 
 
vi /etc/courier-imap/imapd.cnf
 
Make it to suit your environment.
 
 
 
/usr/sbin/mkimapdcert
 
Will generate /usr/share/imapd.pem
 
 
 
mv /usr/share/imapd.pem /etc/courier-imap/
 
Move the newly generated Courier-IMAP SSL cert.
 
 
 
====Webmail====
 
=====SquirrelMail=====
 
Make the folder.
 
mkdir /var/lib/squirrelmail
 
chown nobody:nobody /var/lib/squirrelmail
 
 
 
Configure SquirrelMail on CLI.
 
cd /home/httpd/html/squirrelmail/config - (is now /srv/http/squirrelmail/config), 04.12.2011
 
perl conf.pl
 
 
 
=====RoundCube=====
 
Yes, it works! Check it out [http://roundcube.net/ here]!
 
 
 
<pre>
 
RoundCube Webmail is a browser-based multilingual IMAP client with an application-like user interface.
 
It provides full functionality you expect from an e-mail client, including MIME support, address book,
 
folder manipulation, message searching and spell checking. RoundCube Webmail is written in PHP and
 
requires a MySQL or Postgres database. The user interface is fully skinnable using XHTML and CSS 2.
 
</pre>
 
 
 
As for the configuration of RoundCube, note that I'm using PostfixAdmin 2.2.1.1, which can make the query quite different.
 
For the configuration, you should look in the main.inc.php, and consider several options:
 
<pre>
 
$rcmail_config['auto_create_user'] = TRUE;
 
$rcmail_config['default_host'] = 'your.fdm';
 
$rcmail_config['virtuser_query'] = 'SELECT username FROM postfix.mailbox WHERE username = "%u" or name = "%u"';
 
$rcmail_config['smtp_server'] = 'mail.your.fdm';
 
$rcmail_config['smtp_user'] = '%u';
 
$rcmail_config['smtp_pass'] = '%p';
 
$rcmail_config['smtp_helo_host'] = 'your.fdm';
 
$rcmail_config['imap_root'] = 'INBOX'; // Important: Otherwise, folders like "Sent" and "Trash" will not be created
 
$rcmail_config['create_default_folders'] = TRUE;
 
$rcmail_config['enable_spellcheck'] = FALSE; // Communicates with Google - do we want this?
 
</pre>
 
 
 
====Spamassassin====
 
Go over '''/etc/mail/spamassassin/local.cf''' and configure it to your needs.
 
 
 
Create Spamassassin user/group and folder.
 
groupadd -g 5001 spamd
 
useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin -m spamd
 
chown spamd:spamd /var/lib/spamassassin
 
 
 
Make sure '''/etc/conf.d/spamd''' look like following.
 
SAHOME="/var/lib/spamassassin/"
 
SPAMD_OPTS="--create-prefs --max-children 5 --username spamd --helper-home-dir ${SAHOME} -s ${SAHOME}spamd.log --pidfile /var/run/spamd.pid"
 
 
 
To leave the service ready to run, let's update the spamassassin matching patterns.
 
/usr/bin/vendor_perl/sa-update
 
 
 
====Postfix Admin====
 
 
 
----
 
 
 
Obs1: There's a package in [https://aur.archlinux.org/packages.php?ID=28103 AUR]
 
 
 
Obs2: The user/group in the recent apache pkg are http:http)
 
 
 
Obs3: Check the instructions for the use of setup.php in the postfixadmin folder
 
--[[User:Mvinnicius|mvinnicius]] 08:47, 31 January 2011 (EST)
 
----
 
 
Sets up correct permissions.
 
chown -R nobody:nobody /home/httpd/html/postfixadmin-2.1.0/
 
cd /home/httpd/html/postfixadmin/
 
chmod 640 *.php
 
cd /home/httpd/html/postfixadmin/admin/
 
chmod 640 *.php
 
cd /home/httpd/html/postfixadmin/images/
 
chmod 640 *.png
 
cd /home/httpd/html/postfixadmin/languages/
 
chmod 640 *.lang
 
cd /home/httpd/html/postfixadmin/templates/
 
chmod 640 *.php
 
cd /home/httpd/html/postfixadmin/users/
 
chmod 640 *.php
 
 
 
Look at '''/home/httpd/html/postfixadmin/DATABASE_MYSQL.TXT''' and modify the lines with password of your like.    (''edited by silvernode'' NOTE: DATABASE_MYSQL.txt does not seem to exist in postfixadmin-2.3.2)
 
INSERT INTO user (Host, User, Password) VALUES ('localhost','postfix',password(''''YOUR_NEW_PASSWD''''));
 
(Line 28?)
 
 
 
INSERT INTO user (Host, User, Password) VALUES ('localhost','postfixadmin',password(''''YOUR_NEW_PASSWD''''));
 
(Line 31?)
 
 
 
Load Postfix Admin MySQL database structure.
 
/etc/rc.d/mysqld start
 
mysql -u root -p < /home/httpd/html/postfixadmin/DATABASE_MYSQL.TXT
 
/etc/rc.d/mysqld stop
 
 
 
(Remember to remove '''YOUR_NEW_PASSWD''' from '''/home/httpd/html/postfixadmin/DATABASE_MYSQL.TXT'''!)
 
 
 
Make Postfix Admin configuration file.
 
cp /home/httpd/html/postfixadmin/config.inc.php.sample /home/httpd/html/postfixadmin/config.inc.php
 
chmod 640 /home/httpd/html/postfixadmin/config.inc.php
 
You may want to go over '''/home/httpd/html/postfixadmin/config.inc.php''' and configure it to suit you, but the following line needs to match what password you set above.
 
$CONF['database_password'] = ''''YOUR_NEW_PASSWD'''';
 
(Line 32?)
 
Make sure it uses newer MySQL protocol
 
$CONF['database_type'] = 'mysqli';
 
(Line 29?)
 
 
 
====Courier-IMAP and Courier-authlib====
 
Courier-IMAP is a bit harder to configure and noticeably slower compared to Dovecot. However, if you prefer something tried-and-true, Courier-IMAP won't disappoint you.
 
 
 
Make sure following files have following contents.
 
* /etc/conf.d/courier-imap
 
CI_DAEMONS="imapd-ssl"
 
 
 
* /etc/authlib/authdaemonrc
 
authmodulelist="authmysql"
 
 
 
* /etc/authlib/authmysqlrc
 
MYSQL_SERVER            localhost
 
MYSQL_USERNAME          postfix
 
MYSQL_PASSWORD          '''YOUR_NEW_PASSWD'''
 
MYSQL_SOCKET            /tmp/mysql.sock
 
MYSQL_PORT              3306
 
MYSQL_OPT              0
 
MYSQL_DATABASE          postfix
 
MYSQL_USER_TABLE        mailbox
 
MYSQL_CRYPT_PWFIELD    password
 
MYSQL_UID_FIELD        5000
 
MYSQL_GID_FIELD        5000
 
MYSQL_LOGIN_FIELD      username
 
MYSQL_HOME_FIELD        "/home/vmail"
 
MYSQL_MAILDIR_FIELD    maildir
 
MYSQL_QUOTA_FIELD      quota
 
 
 
* /etc/courier-imap/imapd-ssl
 
IMAPDSSLSTART=YES
 
TLS_PROTOCOL=SSL23
 
TLS_CERTFILE=/etc/courier-imap/imapd.pem
 
 
 
====Dovecot====
 
<pre>
 
Dovecot is an open source IMAP and POP3 server for Linux/UNIX-like systems, written with security
 
primarily in mind. Dovecot is an excellent choice for both small and large installations. It's fast,
 
simple to set up, requires no special administration and it uses very little memory.
 
</pre>
 
 
 
''At this time Dovecot is recommended as it is faster and newer than courier-imap, it is also much easier to setup''
 
 
 
Make sure the following files with following contents.
 
 
 
I strongly recommend go over all settings within this file, but I've listed what's required.
 
* /etc/dovecot/dovecot.conf
 
 
 
Obs: In the recent package, besides the dovecot.conf file, the configurations below are splitted in other files at  /etc/dovecot/conf.d--[[User:Mvinnicius|mvinnicius]] 09:02, 31 January 2011 (EST)
 
 
 
protocols = imap # since new version of dovecot, 'imaps' is not necessary
 
ssl = yes # or can be ssl = required
 
ssl_cert = </etc/ssl/certs/server.crt
 
ssl_key = </etc/ssl/private/server.key
 
first_valid_uid = 5000
 
first_valid_gid = 5000
 
auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
 
namespace {
 
  inbox = yes
 
  location =
 
  prefix =
 
  separator = /
 
  type = private
 
}
 
protocol imap {
 
  imap_client_workarounds = delay-newmail tb-extra-mailbox-sep
 
}
 
protocol lda {
 
  postmaster_address = admin@'''YOUR_DOMAIN.TLD'''
 
  hostname = '''YOUR_SERVER_NAME'''
 
  sendmail_path = /usr/sbin/sendmail
 
}
 
service auth {
 
  unix_listener /var/spool/postfix/private/auth {
 
    group = postfix
 
    mode = 0666
 
    user = postfix
 
  }
 
  unix_listener auth-userdb {
 
    group = vmail
 
    mode = 0600
 
    user = vmail
 
  }
 
}
 
userdb {
 
  args = /etc/dovecot/dovecot-sql.conf
 
  driver = sql
 
}
 
passdb {
 
  driver = sql
 
  args = /etc/dovecot/dovecot-sql.conf
 
}
 
 
 
 
 
* /etc/dovecot/dovecot-sql.conf
 
connect = host=localhost dbname=postfix user=postfix password='''YOUR_NEW_PASSWD'''
 
default_pass_scheme = CRYPT
 
password_query = SELECT password FROM mailbox WHERE username = '%u' AND active = '1'
 
user_query = SELECT maildir AS mail, 5000 AS uid, 5000 AS gid, "/home/vmail" AS home FROM mailbox WHERE username = '%u' AND active = '1'
 
 
 
====PHP====
 
Edit '''/etc/php/php.ini''' and make the following changes.
 
magic_quotes_gpc = On
 
(Required for Postfix Admin)
 
 
 
open_basedir = /home/:/tmp/:/usr/share/pear/:/var/lib/squirrelmail/
 
(Required for SquirrelMail)
 
 
 
====Postfix====
 
I '''strongly''' recommend you go through all the lines in '''/etc/postfix/main.cf''' and configure it to your needs. Only followings are required for this setup!
 
mydestination = localhost
 
 
 
mynetworks_style = host
 
 
 
relay_domains = $mydestination
 
 
 
Add the following to end of '''/etc/postfix/main.cf'''.
 
# Postfix with MySQL maps (Configure domain emails with Postfix Admin)
 
#
 
# Virtual Mailbox Domain Settings
 
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
 
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
 
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
 
virtual_mailbox_limit = 51200000
 
virtual_minimum_uid = 5000
 
virtual_uid_maps = static:5000
 
virtual_gid_maps = static:5000
 
virtual_mailbox_base = /home/vmail
 
virtual_transport = virtual
 
# Additional for quota support
 
virtual_create_maildirsize = yes
 
virtual_mailbox_extended = yes
 
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
 
virtual_mailbox_limit_override = yes
 
virtual_maildir_limit_message = Sorry, your maildir has overdrawn your diskspace quota, please free up some space and try again.
 
virtual_overquota_bounce = yes
 
(Above addition scrapped from [https://help.ubuntu.com/community/PostfixCompleteVirtualMailSystemHowto Ubuntu Wiki (Postfix Complete Virtual Mail System)] <=== '''NOT COMPLETE!''')
 
 
 
Create the following Postfix maps with contents provided but change out the password.
 
<pre>
 
In Postfix, lookup tables are called maps. Postfix uses maps not only to find out
 
where to send mail, but also to impose restrictions on clients, senders, and recipients,
 
and to check certain patterns in email content.
 
</pre>
 
* /etc/postfix/mysql_virtual_alias_maps.cf
 
user = postfix
 
password = '''YOUR_NEW_PASSWD'''
 
hosts = localhost
 
dbname = postfix
 
table = alias
 
select_field = goto
 
where_field = address
 
* /etc/postfix/mysql_virtual_domains_maps.cf
 
user = postfix
 
password = '''YOUR_NEW_PASSWD'''
 
hosts = localhost
 
dbname = postfix
 
table = domain
 
select_field = domain
 
where_field = domain
 
#additional_conditions = and backupmx = '0' and active = '1'
 
* /etc/postfix/mysql_virtual_mailbox_maps.cf
 
user = postfix
 
password = '''YOUR_NEW_PASSWD'''
 
hosts = localhost
 
dbname = postfix
 
table = mailbox
 
select_field = maildir
 
where_field = username
 
#additional_conditions = and active = '1'
 
* /etc/postfix/mysql_virtual_mailbox_limit_maps.cf
 
user = postfix
 
password = '''YOUR_NEW_PASSWD'''
 
hosts = localhost
 
dbname = postfix
 
table = mailbox
 
select_field = quota
 
where_field = username
 
#additional_conditions = and active = '1'
 
 
 
Set the proper permissions on those map files.
 
chgrp postfix /etc/postfix/mysql_*.cf
 
chmod 640 /etc/postfix/mysql_*.cf
 
 
 
Make Postfix pipe mails through Spamassassin first.
 
* /etc/postfix/master.cf
 
smtp      inet  n      -      n      -      -      smtpd -o content_filter=spamassassin
 
spamassassin    unix    -      n      n      -      -      pipe user=nobody argv=/usr/bin/vendor_perl/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
 
 
 
====SMTP-AUTH====
 
This is '''*OPTIONAL*'''! I do recommend you use your ISP's SMTP service to send your e-mails.
 
 
 
Basic setup is using SMTPS (SSL; port 465) using SASL+PAM to authenticate with MySQL backend.
 
 
 
Install some packages first.
 
pacman -S cyrus-sasl cyrus-sasl-plugins pam_mysql
 
 
 
Make the following modifications to specified files.
 
 
 
* /etc/postfix/main.cf
 
relay_domains = *
 
 
 
smtpd_sasl_auth_enable = yes
 
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
 
smtpd_sasl_security_options = noanonymous
 
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
 
smtpd_tls_auth_only = yes
 
smtpd_tls_cert_file = /etc/ssl/certs/server.crt
 
smtpd_tls_key_file = /etc/ssl/private/server.key
 
smtpd_sasl_local_domain = $mydomain
 
broken_sasl_auth_clients = yes
 
smtpd_tls_loglevel = 1
 
 
 
* /etc/postfix/master.cf
 
smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
 
 
 
Note: as it turns out, '''smtps''' was never actually a valid entry in '''/etc/services''' (except briefly, for a few months in 1996... see https://bugs.archlinux.org/task/20436). Since recent versions of /etc/services are now "fixed", postfix will not be able to translate the string "smtps" into port 465 any more. As a workaround, you can do this:
 
 
 
'''465''' inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
 
 
 
(You can also change /etc/services so that 465/tcp is smtps again, but this will break mysteriously unless you also tell pacman not to ever touch that file, which, if you ever migrate your server or help a friend set up his, is something you're definitely going to forget you did... and then it will break mysteriously again and you'll spend a few hours Googling until you land here.)
 
 
 
* /etc/pam.d/smtp
 
auth required /usr/lib/security/pam_mysql.so user=postfix passwd='''YOUR_NEW_PASSWD''' host=localhost db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=1
 
account sufficient /usr/lib/security/pam_mysql.so user=postfix passwd='''YOUR_NEW_PASSWD''' host=localhost db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=1
 
 
 
''pam_mysql.so'' may also be located in ''/lib/security/'' instead of ''/usr/lib/security/''. I find Arch64 uses ''/usr/lib/security/pam_mysql.so'' and Arch32 uses ''/lib/security/pam_mysql.so''.
 
 
 
* /etc/conf.d/saslauthd
 
SASLAUTHD_OPTS="-m /var/run/saslauthd -r -a pam"
 
 
 
* /usr/lib/sasl2/smtpd.conf
 
pwcheck_method: saslauthd
 
mech_list: plain login
 
saslauthd_path: /var/run/saslauthd/mux
 
log_level: 7
 
 
 
==Put into production!==
 
===Firing up services!===
 
Run following command to start all services!
 
for v in spamd mysqld httpd postfix dovecot;do /etc/rc.d/$v start ;done
 
('''saslauthd''' if you plan to use SMTP-AUTH)
 
 
 
If you plan to use Courier-IMAP, run following instead!
 
for v in saslauthd spamd mysqld httpd postfix authdaemond courier-imap;do /etc/rc.d/$v start ;done
 
('''saslauthd''' if you plan to use SMTP-AUTH)
 
 
 
Go to following site to configure more stuff!
 
* Postfix Admin
 
http://YOUR_DOMAIN.TLD/postfixadmin/admin/
 
(Default is '''USER''': admin '''PASS''': admin)
 
I would look into Apache's documentation on .htaccess/.htpasswd and change out Postfix Admin's default admin page password.
 
 
 
===Verify working===
 
* Postfix
 
Let's test see if Postfix is up and accepting connections.
 
[root@monkey1 /etc/rc.d]# '''telnet localhost 25'''
 
Trying 127.0.0.1...
 
Connected to localhost.
 
Escape character is '^]'.
 
220 mail.YOUR_DOMAIN.TLD ESMTP Postfix (Arch Linux)
 
'''ehlo YOUR_DOMAIN.TLD'''
 
250-mail.YOUR_DOMAIN.TLD
 
250-PIPELINING
 
250-SIZE 10240000
 
250-VRFY
 
250-ETRN
 
250-ENHANCEDSTATUSCODES
 
250-8BITMIME
 
250 DSN
 
'''mail from: root@localhost'''
 
250 2.1.0 Ok
 
'''rcpt to: test@YOUR_DOMAIN.TLD'''
 
250 2.1.5 Ok
 
'''data'''
 
354 End data with <CR><LF>.<CR><LF>
 
'''This is a test sending from root@localhost!'''
 
'''.'''
 
250 2.0.0 Ok: queued as 883E910C47B
 
'''quit'''
 
221 2.0.0 Bye
 
Connection closed by foreign host.
 
 
 
^^^^^^^^^^
 
 
 
S-W-E-E-T! :)
 
 
 
* Dovecot or Courier-IMAP
 
Fire up your favorite mail client, that supports IMAP-SSL, and connect to your domain see if it works!
 
 
 
* Spamassassin
 
If you see something similar in your e-mail headers, Spamassassin is working!
 
X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on YOUR_DOMAIN.TLD
 
X-Spam-Status: No, score=-0.2 required=3.0 tests=ALL_TRUSTED,MISSING_SUBJECT autolearn=no version=3.2.3
 
 
 
* Postfix Admin
 
Play around see everything works like it should.
 
http://YOUR_DOMAIN.TLD/postfixadmin/
 
 
 
* SquirrelMail
 
http://YOUR_DOMAIN.TLD/squirrelmail/
 
 
 
===Post-installation===
 
If you firewalled your server, make sure the ports '''25 80 443 993''' (and '''465''' for SMTP-AUTH) are open!
 
 
 
Don't forget to add services to your '''/etc/rc.conf'''!
 
 
 
Any configuration files with '''YOUR_NEW_PASSWD''' in it you should '''''chmod 640''''' it!
 
 
 
==Notes==
 
Comments? Questions? Rants? Please let me know at '''''terii [-AT-] linuxmonkey [-DOT-] net'''''.
 
 
 
You can also catch me on Freenode IRC under #archlinux; '''quad3d''', '''quad3datwork''', '''limlappy''', '''gangsterlicious''', or '''portofu'''.
 
 
 
Thanks to [http://www.slicehost.com/ slicehost.com] for hosting my VPS! This guide is not possible without my VPS. Find this guide useful? Thinking about having your own VPS at slicehost.com? Ask me for my reference e-mail so I can get some credit! :)
 
 
 
==See also==
 
*[[Simple Virtual User Mail System]]
 
*[[Courier MTA]]
 
*[[Postfix]]
 

Latest revision as of 22:47, 14 June 2014