"qmail is a secure, reliable, efficient, simple message transfer agent. It is meant as
a replacement for the entire sendmail-binmail system on typical Internet-connected
UNIX hosts", yeah,yeah....but in my feeling, it is not so fast at all.(I have use
qmail for nearly 1 year!)
And following is the data of my test:
Server MTA OS Time spend(1000 letters) Server
Hardware Server status
-----------------------------------------------------------------------------------------------------------
202.96.237.177 Qmail1.03 FreeBSD3.3 314 seconds K62 350,64MRam 4G
IDE little load
202.96.210.242 Sendmail8.10 FreeBSD3.2 202 seconds PII450*2,1GRam
36G SCSI little load
202.101.18.155 Qmail1.03 FreeBSD3.2 555 seconds
PII450*2,512MRam,36G SCSI heavy load
202.101.18.157 Qmail1.03 FreeBSD3.2 404 seconds
PII450*2,512MRam,36G SCSI No any load
(Average value of 3 tests.)
All letters was sent to MTA by port 25,and to a local address.
The data show:
1. Qmail is more slow than sendmail;
2. Qmail can run more fast in some worm-eaten computer. (Impossible? but it is really!)
WHY ? WHY ?
And the following is my test program:
/* speed.c */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "connect.c"
void main()
{
int i;
time_t time1,time2;
int handle;
char s[1024];
FILE *f;
time(&time1);
printf(" Now test start at %d...\n",time1);
handle=opensockets("127.0.0.1",25);
readsockets(handle,s);
writesockets(handle,"helo localhost");
readsockets(handle,s);
for (i=1;i<=1000;i++)
{
if (i%100==0) printf("send letter %d...\n",i);
writesockets(handle,"mail from:<>");
readsockets(handle,s);
writesockets(handle,"rcpt to:<nothisaddr@hostname>"); //please change host to
local hostnae
readsockets(handle,s);
writesockets(handle,"data");
readsockets(handle,s);
f=fopen("speed.c","r");
while (!feof(f))
{
fscanf(f,"%s",s);
writesockets(handle,s);
}
fclose(f);
writesockets(handle,".");
readsockets(handle,s);
if (strstr(s,"250 ok")==NULL) printf("error at %d!\n",i);
}
writesockets(handle,"quit");
readsockets(handle,s);
close(handle);
time(&time2);
printf("End at %d,total use %d seconds.\n",time2,time2-time1);
}
Hotdog
hotdog#soim.com