This document details how to test the sending and receiving functions of Atmail. This will shed light on how many messages Atmail can receive or send, and how many concurrent users can be served via POP3 or IMAP.
First, download Postal from: http://www.coker.com.au/postal/postal-0.70.tgz
% wget "http://www.coker.com.au/postal/postal-0.70.tgz"
Untar, install:
% tar xvfz postal-0.70.tgz
% cd postal-0.70
% ./configure && make && make install
Generate a list of users to import into Atmail for testing. It will be much more efficient to affix a common prefix to the accounts unique to the testing. This will make the deletion easier in the future.
For example:
testing-user1, password, test.com
testing-user2, password, test.com
testing-user3, password, test.com
testing-user4, password, test.com
A list of about 100 users should be adequate. The more users, the wider the search parameters, and the more accurate the test will be.
Import the userlist into Atmail:
% cd /usr/local/atmail/webmail/utilities/migration/
% php migrate-users-csv.php [filename] [admin username]
Where [filename is the file], and [admin username] is the admin user. For this example, we will use the filename "userlist.txt" and "admin" as the user. So:
% cd /usr/local/atmail/webmail/utilities/migration/
% php migrate-users-csv.php userlist.txt admin
Once the users are imported, you can then start testing. You can use postal to test SMTP connections. You will need to reformat the file to suit the one that postal requires. This command will generate a file based on your previous list:
% cat userlist.txt | sed 's/,/ /g' | awk '{print $1 "@" $3 ","$2}' > userlist_postal.txt
'userlist_postal.txt' will now contain your userlist for postal. You can now execute this command:
postal -m 10 -r 24000 -t 5 -c 5 -s 0 [server ip] userlist_postal.txt
This command creates a test where messages can vary from 1-10 KB, a maximum of 24,000 messages are sent a minute, with five threads, and 10 maximum messages per connection. Replace [server ip] with the IP of the Atmail server. 'userlist_postal.txt' is the file you generated earlier.
This command will generate messages in intervals of one minute each. 10 minutes should be a good sample size. It will list the amount of messages accepted, sent, and errored out during that period. In the case that you get an error message during this test period, it is likely caused by SMTP limits that Atmail imposes on a per-IP basis. You may need to set the values in the Atmail WebAdmin to accomodate the test (considering that you are sending emails from a singular IP).
Press Control-C to terminate the test.
For the POP3/IMAP tests, this command applies:
rabid -p 5 -c 5 -r 24000 -s 0 [server ip] userlist_postal.txt
This will create a test with five threads, 5 messages a connection, with a maximum of 24,000 connections a minute. As with above, This command will generate messages in intervals of one minute each. 10 minutes should be a good sample size.