The Perfect Load-Balanced & High-Availability Web Cluster With 2 Servers Running Xen On Ubuntu 8.04 Hardy Heron - Page 5
On this page
- 11. Mail server (web1, web2)
- 11.1 Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin
- 11.2 Configure Postfix
- 11.3 Solution to local mail problem on web2.example.com
- 11.4 Configure Saslauthd
- 11.5 Configure Courier
- 11.6 Modify /etc/aliases
- 11.7 Spamassassin
- 11.8 Test Postfix
- 11.9 Populate the database
- 11.10 Send A Welcome Email For Creating Maildir
- 11.11 Installing SquirrelMail
11. Mail server (web1, web2)
11.1 Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin
Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin :
apt-get install postfix postfix-mysql postfix-doc courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin libpam-smbpass
You will be asked a few questions:
Create directories for web-based administration? <-- No
General type of mail configuration: <-- Internet Site
System mail name: <-- web1.example.com (or web2.example.com)
SSL certificate required <-- Ok
Web server to reconfigure automatically: <-- apache2
11.2 Configure Postfix
Now we have to tell Postfix where it can find all the information in the database. Therefore we have to create six text files. You will notice that I tell Postfix to connect to MySQL on the IP address 127.0.0.1 instead of localhost. This is because Postfix is running in a chroot jail and does not have access to the MySQL socket which it would try to connect if I told Postfix to use localhost. If I use 127.0.0.1 Postfix uses TCP networking to connect to MySQL which is no problem even in a chroot jail (the alternative would be to move the MySQL socket into the chroot jail which causes some other problems).
Now let's create our six text files.
vi /etc/postfix/mysql-virtual_domains.cf
user = mail_admin password = mail_admin_password dbname = mail query = SELECT domain AS virtual FROM domains WHERE domain='%s' hosts = 127.0.0.1
vi /etc/postfix/mysql-virtual_forwardings.cf
user = mail_admin password = mail_admin_password dbname = mail query = SELECT destination FROM forwardings WHERE source='%s' hosts = 127.0.0.1
vi /etc/postfix/mysql-virtual_mailboxes.cf
user = mail_admin password = mail_admin_password dbname = mail query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s' hosts = 127.0.0.1
vi /etc/postfix/mysql-virtual_email2email.cf
user = mail_admin password = mail_admin_password dbname = mail query = SELECT email FROM users WHERE email='%s' hosts = 127.0.0.1
vi /etc/postfix/mysql-virtual_transports.cf
user = mail_admin password = mail_admin_password dbname = mail query = SELECT transport FROM transport WHERE domain='%s' hosts = 127.0.0.1
vi /etc/postfix/mysql-virtual_transports_notactive.cf
user = mail_admin password = mail_admin_password dbname = mail query = SELECT transport FROM domains WHERE domain='%s' hosts = 127.0.0.1
Then change the permissions and the group of these files:
chmod o= /etc/postfix/mysql-virtual_*.cf
chgrp postfix /etc/postfix/mysql-virtual_*.cf
Now we create a user and group called vmail with the home directory /home/vmail. This is where all mail boxes will be stored.
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail -m
passwd vmail
Next we do some Postfix configuration.
Make sure you put the right 'myhostname' and 'mydestination' on web2.example.com:
postconf -e 'myhostname = web1.example.com'
postconf -e 'mydestination = web1.example.com, localhost, localhost.localdomain'
postconf -e 'mynetworks = 127.0.0.0/8'
postconf -e 'virtual_alias_domains ='
postconf -e 'virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf'
postconf -e 'virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf'
postconf -e 'virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf'
postconf -e 'virtual_mailbox_base = /home/vmail'
postconf -e 'virtual_uid_maps = static:5000'
postconf -e 'virtual_gid_maps = static:5000'
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_sasl_authenticated_header = yes'
postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtpd_tls_cert_file = /etc/postfix/smtpd.cert'
postconf -e 'smtpd_tls_key_file = /etc/postfix/smtpd.key'
postconf -e 'transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf'
postconf -e 'virtual_create_maildirsize = yes'
postconf -e 'virtual_mailbox_extended = yes'
postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks'
Afterwards we create the SSL certificate that is needed for TLS:
cd /etc/postfix
openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509
Country Name (2 letter code) [AU]: <-- Enter your Country Name (e.g., "DE").
State or Province Name (full name) [Some-State]: <-- Enter your State or Province Name.
Locality Name (eg, city) []: <-- Enter your City.b
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter your Organization Name (e.g., the name of your company).
Organizational Unit Name (eg, section) []: <-- Enter your Organizational Unit Name (e.g. "IT Department").
Common Name (eg, YOUR name) []: <-- Enter the Fully Qualified Domain Name of the system (e.g. "server1.example.com").
Email Address []: <-- Enter your Email Address.
Then change the permissions of the smtpd.key:
chmod o= /etc/postfix/smtpd.key
11.3 Solution to local mail problem on web2.example.com
When we will configure ldirectord, only web1.example.com will be active for SMTP (port 25). Our second server will be on standby and will take the active role only if postfix fails on web1.example.com.
The reason why we do that is because if both servers are active on port 25, half of mail from the outside will go on web1 and the other half on web2. It would be a nightmare to sync...
This works fine for mail from the outside but for local mail on web2.example.com will be delivered locally. In other words, let say you have a "contact us" form on your website that send an email and the visitor is on web2.example.com, the mail will never reach web1.example.com where all the mail should go. This happend because when a mail is sent from web2.example.com to [email protected] for example, it ask the DNS server what is the mail server address of example.com, get an answer of 192.168.1.106 which is himself so the mail never leave the server.
The trick is to use postfix transport to send local mail to web1.example.com.
To achieve this, we will use a bash script that will run every minute which will send local mail to web1.example.com :
web2.example.com
vi /root/check_smtp
#!/bin/bash # Local mail fix for load balancing # Copyright (c) 2008 blogama.org # This script is licensed under GNU GPL version 2.0 or above # --------------------------------------------------------------------- ### The purpose of this script is to fix local mail problem with load balancing ### ### If someone can make this script work with postconf -e instead of sed (ugly) ### to modify /etc/postfix/main.cf WITH CRONTAB let me know, did not work for me ### To be modified ### MASTERSERVER="web1.example.com" ###### Do not make modifications below ###### ### Binaries ### MAIL=$(which mail) TELNET=$(which telnet) #This POSTCONF="/etc/postfix/main.cf" ### Check if server 1 is responding on smtp ### ( echo "quit" ) | $TELNET $MASTERSERVER 25 | grep Connected > /dev/null 2>&1 if [ "$?" -ne "1" ]; then ### If in a previous attempt web1 was not connecting but now connect, web2 will forward all local mail to web1 ### if [ -f smtpactive ]; then sed -i 's/transport_maps = .*/transport_maps = proxy:mysql:\/etc\/postfix\/mysql-virtual_transports_notactive.cf/' $POSTCONF /etc/init.d/postfix restart rm /root/smtpactive ### If in a previous attempt web1 was connecting and still does, do nothing and exit ### else exit 1; fi else ### If in a previous attempt web1 was not connecting and still doesnt, web2 is already active for local mail, do nothing and exit ### cd /root if [ -f smtpactive ]; then exit 1; fi ### If in a previous attempt web1 was connecting but now doesnt, web2 will take active role for local mail ### echo "SMTP active on web2" > /root/smtpactive sed -i 's/transport_maps = .*/transport_maps = proxy:mysql:\/etc\/postfix\/mysql-virtual_transports.cf/' $POSTCONF /etc/init.d/postfix restart fi
chmod +x /root/check_smtp
Now we will forward all local mail to web1.example.com by doing the following :
postconf -e 'transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports_notactive.cf
/etc/init.d/postfix restart
and add the script to your crontab :
crontab -e
[...] * * * * * /root/check_smtp >/dev/null 2>&1 [...]
11.4 Configure Saslauthd
mkdir -p /var/spool/postfix/var/run/saslauthd
Then edit /etc/default/saslauthd. Set START to yes and change the line OPTIONS="-c -m /var/run/saslauthd" to OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r":
vi /etc/default/saslauthd
# # Settings for saslauthd daemon # Please read /usr/share/doc/sasl2-bin/README.Debian for details. # # Should saslauthd run automatically on startup? (default: no) START=yes # Description of this saslauthd instance. Recommended. # (suggestion: SASL Authentication Daemon) DESC="SASL Authentication Daemon" # Short name of this saslauthd instance. Strongly recommended. # (suggestion: saslauthd) NAME="saslauthd" # Which authentication mechanisms should saslauthd use? (default: pam) # # Available options in this Debian package: # getpwent -- use the getpwent() library function # kerberos5 -- use Kerberos 5 # pam -- use PAM # rimap -- use a remote IMAP server # shadow -- use the local shadow password file # sasldb -- use the local sasldb database file # ldap -- use LDAP (configuration is in /etc/saslauthd.conf) # # Only one option may be used at a time. See the saslauthd man page # for more information. # # Example: MECHANISMS="pam" MECHANISMS="pam" # Additional options for this mechanism. (default: none) # See the saslauthd man page for information about mech-specific options. MECH_OPTIONS="" # How many saslauthd processes should we run? (default: 5) # A value of 0 will fork a new process for each connection. THREADS=5 # Other options (default: -c -m /var/run/saslauthd) # Note: You MUST specify the -m option or saslauthd won't run! # # See /usr/share/doc/sasl2-bin/README.Debian for Debian-specific information. # See the saslauthd man page for general information about these options. # # Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd" #OPTIONS="-c -m /var/run/saslauthd" OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
Then create the file /etc/pam.d/smtp. It should contain only the following two lines (go sure to fill in your correct database details):
vi /etc/pam.d/smtp
auth required pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1 account sufficient pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1
Next create the file /etc/postfix/sasl/smtpd.conf. It should look like this:
vi /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd mech_list: plain login allow_plaintext: true auxprop_plugin: mysql sql_hostnames: 127.0.0.1 sql_user: mail_admin sql_passwd: mail_admin_password sql_database: mail sql_select: select password from users where email = '%u'
Next add the postfix user to the sasl group (this makes sure that Postfix has the permission to access saslauthd):
adduser postfix sasl
Then restart Postfix and Saslauthd:
/etc/init.d/postfix restart
/etc/init.d/saslauthd restart
11.5 Configure Courier
Now we have to tell Courier that it should authenticate against our MySQL database. First, edit /etc/courier/authdaemonrc and change the value of authmodulelist so that it reads:
vi /etc/courier/authdaemonrc
[...] authmodulelist="authmysql" [...]
Then make a backup of /etc/courier/authmysqlrc and empty the old file:
cp /etc/courier/authmysqlrc /etc/courier/authmysqlrc_orig
cat /dev/null > /etc/courier/authmysqlrc
Then open /etc/courier/authmysqlrc and put the following lines into it:
vi /etc/courier/authmysqlrc
MYSQL_SERVER localhost MYSQL_USERNAME mail_admin MYSQL_PASSWORD mail_admin_password MYSQL_PORT 0 MYSQL_DATABASE mail MYSQL_USER_TABLE users MYSQL_CRYPT_PWFIELD password #MYSQL_CLEAR_PWFIELD password MYSQL_UID_FIELD 5000 MYSQL_GID_FIELD 5000 MYSQL_LOGIN_FIELD email MYSQL_HOME_FIELD "/home/vmail" MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') #MYSQL_NAME_FIELD #MYSQL_QUOTA_FIELD quota
Then restart Courier:
/etc/init.d/courier-authdaemon restart
/etc/init.d/courier-imap restart
/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop restart
/etc/init.d/courier-pop-ssl restart
By running
telnet localhost pop3
you can see if your POP3 server is working correctly. It should give back +OK Hello there. (Type quit to get back to the Linux shell.)
root@server1:/etc/postfix# telnet localhost pop3
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK Hello there.
quit
+OK Better luck next time.
Connection closed by foreign host.
11.6 Modify /etc/aliases
Now we should open /etc/aliases. Make sure that postmaster points to root and root to your own username or your email address, e.g. like this :
vi /etc/aliases
[...] postmaster: root root: [email protected] [...]
Whenever you modify /etc/aliases, you must run
newaliases
afterwards and restart Postfix:
/etc/init.d/postfix restart
11.7 Spamassassin
Now we will install Spamassassin:
apt-get install spamassassin spamc
We want it to run as non-root, so add a spamd user and group:
groupadd spamd
useradd -g spamd -s /bin/false -d /var/log/spamassassin spamd
mkdir /var/log/spamassassin
chown spamd:spamd /var/log/spamassassin
Edit /etc/default/spamassassin so these options are set :
vi /etc/default/spamassassin
# /etc/default/spamassassin # Duncan Findlay # WARNING: please read README.spamd before using. # There may be security risks. # Change to one to enable spamd ENABLED=1 # Options # See man spamd for possible options. The -d option is automatically added. # SpamAssassin uses a preforking model, so be careful! You need to # make sure --max-children is not set to anything higher than 5, # unless you know what you're doing. #OPTIONS="--create-prefs --max-children 5 --helper-home-dir" SAHOME="/var/log/spamassassin/" OPTIONS="--create-prefs --max-children 5 --username spamd -H ${SAHOME} -s ${SAHOME}spamd.log" # Pid file # Where should spamd write its PID to file? If you use the -u or # --username option above, this needs to be writable by that user. # Otherwise, the init script will not be able to shut spamd down. PIDFILE="/var/run/spamd.pid" # Set nice level of spamd #NICE="--nicelevel 15" # Cronjob # Set to anything but 0 to enable the cron job to automatically update # spamassassin's rules on a nightly basis CRON=0
Start the spamassassin daemon:
/etc/init.d/spamassassin start
We will add spamassassin to postfix by doing the following :
vi /etc/postfix/master.cf
Edit the first line of the configuration file so that it looks like this :
smtp inet n - - - - smtpd -o content_filter=spamassassin
And add this to the end of the file :
spamassassin unix - n n - - pipe user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
11.8 Test Postfix
To see if Postfix is ready for SMTP-AUTH and TLS, run
telnet localhost 25
After you have established the connection to your Postfix mail server type
ehlo localhost
If you see the lines
250-STARTTLS and 250-AUTH LOGIN PLAIN
everything is fine.
Now typequit
to return to the shell.
11.9 Populate the database
On either server do (not both!) :
mysql -u root -p
USE mail;
INSERT INTO `domains` (`domain`) VALUES ('example.com');
INSERT INTO `users` (`email`, `password`) VALUES ('[email protected]', ENCRYPT('secret'));
quit;
NEVER FORGET TO USE MYSQL ENCRYPT FUNCTION FOR PASSWORD!
11.10 Send A Welcome Email For Creating Maildir
When you create a new email account and try to fetch emails from it (with POP3/IMAP) you will probably get error messages saying that the Maildir doesn't exist. The Maildir is created automatically when the first email arrives for the new account. Therefore it's a good idea to send a welcome email to a new account.
First, we install the mailx package:
apt-get install mailx
To send a welcome email to [email protected], we do this:
mailx [email protected]
You will be prompted for the subject. Type in the subject (e.g. Welcome), then press ENTER, and in the next line type your message. When the message is finished, press ENTER again so that you are in a new line, then press CTRL+D; if you don't want to cc the mail, press ENTER again:
root@server1:/usr/local/sbin# mailx [email protected] Subject: Welcome <-- ENTER Welcome! Have fun with your new mail account. <-- ENTER <-- CTRL+D Cc: <-- ENTER
11.11 Installing SquirrelMail
SquirrelMail is a webmail interface that will let your users send and receive emails in a browser. This chapter shows how to install it and adjust it to our setup so that users can even change their email account password from the SquirrelMail interface.
To install SquirrelMail, we run:
apt-get install squirrelmail php-pear
Next we copy the Apache configuration that comes with the SquirrelMail package to the /etc/apache2/conf.d directory and restart Apache:
cp /etc/squirrelmail/apache.conf /etc/apache2/conf.d/squirrelmail.conf
/etc/init.d/apache2 restart
SquirrelMail comes with some pre-installed plugins, unfortunately none of them is capable of letting us change our email password in our MySQL database. But there's the Change SQL Password plugin which we can install manually:
The plugin depends on the Pear-DB package so we install it:
pear install DB
Then we install the Change SQL Password plugin itself:
cd /usr/share/squirrelmail/plugins
wget http://www.squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fchange_sqlpass-3.3-1.2.tar.gz
tar xvfz change_sqlpass-3.3-1.2.tar.gz
cd change_sqlpass
cp config.php.sample config.php
Now we must edit config.php and adjust it to our setup. Please adjust the $csp_dsn, $lookup_password_query, $password_update_queries, $password_encryption, $csp_salt_static, and $csp_delimiter variables as follows and comment out $csp_salt_query:
mv /usr/share/squirrelmail/plugins/change_sqlpass/config.php /usr/share/squirrelmail/plugins/change_sqlpass/config.php.bak
vi /usr/share/squirrelmail/plugins/change_sqlpass/config.php
and copy paste this :
<?php /** * SquirrelMail Change SQL Password Plugin * Copyright (C) 2001-2002 Tyler Akins * 2002 Thijs Kinkhorst * 2002-2005 Paul Lesneiwski * This program is licensed under GPL. See COPYING for details * * @package plugins * @subpackage Change SQL Password * */ // Global Variables, don't touch these unless you want to break the plugin // global $csp_dsn, $password_update_queries, $lookup_password_query, $force_change_password_check_query, $password_encryption, $csp_salt_query, $csp_salt_static, $csp_secure_port, $csp_non_standard_http_port, $csp_delimiter, $csp_debug, $min_password_length, $max_password_length, $include_digit_in_password, $include_uppercase_letter_in_password, $include_lowercase_letter_in_password, $include_nonalphanumeric_in_password; $csp_dsn = 'mysql://mail_admin:mail_admin_password@localhost/mail'; $lookup_password_query = 'SELECT count(*) FROM users WHERE email = "%1" AND password = %4'; $password_update_queries = array('UPDATE users SET password = %4 WHERE email = "%1"'); $force_change_password_check_query = ''; $password_encryption = 'MYSQLENCRYPT'; $csp_salt_static = 'LEFT(password, 2)'; $csp_secure_port = 0; $csp_non_standard_http_port = 0; $min_password_length = 6; $max_password_length = 0; $include_digit_in_password = 0; $include_uppercase_letter_in_password = 0; $include_lowercase_letter_in_password = 0; $include_nonalphanumeric_in_password = 0; $csp_delimiter = '@'; $csp_debug = 0; ?>
For reference, the lines that have been changed are the following :
[...] $csp_dsn = 'mysql://mail_admin:mail_admin_password@localhost/mail'; [...] $lookup_password_query = 'SELECT count(*) FROM users WHERE email = "%1" AND password = %4'; [...] $password_update_queries = array('UPDATE users SET password = %4 WHERE email = "%1"'); [...] $password_encryption = 'MYSQLENCRYPT'; [...] $csp_salt_static = 'LEFT(password, 2)'; [...] //$csp_salt_query = 'SELECT salt FROM users WHERE username = "%1"'; [...] $csp_delimiter = '@'; [...]
The Change SQL Password plugin also depends on the Compatibility plugin which we install as follows:
cd /usr/share/squirrelmail/plugins
wget http://www.squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fcompatibility-2.0.11-1.0.tar.gz
tar xvfz compatibility-2.0.11-1.0.tar.gz
Now we must go into the SquirrelMail configuration and tell SquirrelMail that we use Courier as our POP3 and IMAP server and enable the Change SQL Password and the Compatibility plugins:
/usr/sbin/squirrelmail-configure
You'll see the following menu. Navigate through it as indicated:
SquirrelMail Configuration : Read: config.php (1.4.0) --------------------------------------------------------- Main Menu -- 1. Organization Preferences 2. Server Settings 3. Folder Defaults 4. General Options 5. Themes 6. Address Books 7. Message of the Day (MOTD) 8. Plugins 9. Database 10. Languages D. Set pre-defined settings for specific IMAP servers C Turn color on S Save data Q Quit Command >> <-- D
SquirrelMail Configuration : Read: config.php --------------------------------------------------------- While we have been building SquirrelMail, we have discovered some preferences that work better with some servers that don't work so well with others. If you select your IMAP server, this option will set some pre-defined settings for that server. Please note that you will still need to go through and make sure everything is correct. This does not change everything. There are only a few settings that this will change. Please select your IMAP server: bincimap = Binc IMAP server courier = Courier IMAP server cyrus = Cyrus IMAP server dovecot = Dovecot Secure IMAP server exchange = Microsoft Exchange IMAP server hmailserver = hMailServer macosx = Mac OS X Mailserver mercury32 = Mercury/32 uw = University of Washington's IMAP server quit = Do not change anything Command >> <-- courier
imap_server_type = courier default_folder_prefix = INBOX. trash_folder = Trash sent_folder = Sent draft_folder = Drafts show_prefix_option = false default_sub_of_inbox = false show_contain_subfolders_option = false optional_delimiter = . delete_folder = true Press any key to continue... <-- press some key
SquirrelMail Configuration : Read: config.php (1.4.0) --------------------------------------------------------- Main Menu -- 1. Organization Preferences 2. Server Settings 3. Folder Defaults 4. General Options 5. Themes 6. Address Books 7. Message of the Day (MOTD) 8. Plugins 9. Database 10. Languages D. Set pre-defined settings for specific IMAP servers C Turn color on S Save data Q Quit Command >> <-- 8
SquirrelMail Configuration : Read: config.php (1.4.0) --------------------------------------------------------- Plugins Installed Plugins Available Plugins: 1. abook_take 2. administrator 3. bug_report 4. calendar 5. change_sqlpass 6. compatibility 7. delete_move_next 8. demo 9. filters 10. fortune 11. info 12. listcommands 13. mail_fetch 14. message_details 15. newmail 16. sent_subfolders 17. spamcop 18. squirrelspell 19. test 20. translate R Return to Main Menu C Turn color on S Save data Q Quit Command >> <-- 6 (or whatever number the compatibility plugin has - it's needed by the change_sqlpass plugin)
SquirrelMail Configuration : Read: config.php (1.4.0) --------------------------------------------------------- Plugins Installed Plugins 1. compatibility Available Plugins: 2. abook_take 3. administrator 4. bug_report 5. calendar 6. change_sqlpass 7. delete_move_next 8. demo 9. filters 10. fortune 11. info 12. listcommands 13. mail_fetch 14. message_details 15. newmail 16. sent_subfolders 17. spamcop 18. squirrelspell 19. test 20. translate R Return to Main Menu C Turn color on S Save data Q Quit Command >> <-- 6 (the number of the change_sqlpass plugin)
SquirrelMail Configuration : Read: config.php (1.4.0) --------------------------------------------------------- Plugins Installed Plugins 1. compatibility 2. change_sqlpass Available Plugins: 3. abook_take 4. administrator 5. bug_report 6. calendar 7. delete_move_next 8. demo 9. filters 10. fortune 11. info 12. listcommands 13. mail_fetch 14. message_details 15. newmail 16. sent_subfolders 17. spamcop 18. squirrelspell 19. test 20. translate R Return to Main Menu C Turn color on S Save data Q Quit Command >> <-- S
SquirrelMail Configuration : Read: config.php (1.4.0) --------------------------------------------------------- Plugins Installed Plugins 1. compatibility 2. change_sqlpass Available Plugins: 3. abook_take 4. administrator 5. bug_report 6. calendar 7. delete_move_next 8. demo 9. filters 10. fortune 11. info 12. listcommands 13. mail_fetch 14. message_details 15. newmail 16. sent_subfolders 17. spamcop 18. squirrelspell 19. test 20. translate R Return to Main Menu C Turn color on S Save data Q Quit Command >> S Data saved in config.php Press enter to continue... <-- press some key
SquirrelMail Configuration : Read: config.php (1.4.0) --------------------------------------------------------- Plugins Installed Plugins 1. compatibility 2. change_sqlpass Available Plugins: 3. abook_take 4. administrator 5. bug_report 6. calendar 7. delete_move_next 8. demo 9. filters 10. fortune 11. info 12. listcommands 13. mail_fetch 14. message_details 15. newmail 16. sent_subfolders 17. spamcop 18. squirrelspell 19. test 20. translate R Return to Main Menu C Turn color on S Save data Q Quit Command >> <-- Q
Now you can type in http://192.168.1.104/squirrelmail in your browser to access SquirrelMail.
Log in with your email address (e.g. [email protected]) and your password
Password can be changed in Options --> Change Password.