bhm(8) program to send SMTP mail to /dev/null


bhm [-m maximum-message-size] [-t threads] [-b bind-address] [-p listen-port] [ -s ] [-a] [-[z|Z] debug-file] [-r reverse-dns] user-list-filename


This manual page documents briefly the bhm, program.

It is designed to test the performance of SMTP relay servers by receiving mail to /dev/null at random speeds.

The user-list-filename is the name of a file which contains a list of valid user's email addresses. The file may have three fields separated by spaces, the email address, the password (used for rabid) and an optional third field to specify what is to be done with the mail. A 'd' character means that it is to be deferred (SMTP 45x), a 'r' means that it is to be rejected (SMTP 55x), a 'b' means that it is to be accepted and bounced, and a 'g' means that it is to be grey-listed.

The reverse-dns file is in the same format as /etc/hosts and gives the value that will be used in the 220 message. Otherwise it will be bhm

The maximum-message-size indicates the size in Kilobytes that will be the maximum size of a message that will be accepted. The default is 10240k.

The -s parameter enables SSL.

The listen-port parameter specifies the TCP port to listen on (default 25).

The bind-address parameter specifies the IP address to bind to (default is INADDR_ANY - accept connections on all local addresses).

The threads parameter is the number of threads that may be created to receive mail. Note that your BHM machine may have hardware and OS limits that determine how many connections it may receive.

The -a command turns on all logging. All message data received will be logged. This will make it slow and it may not be able to saturate a fast Ethernet link...

The -z switch allows you to specify a debugging file base. From this base one file is created for each thread (with a ':' and the thread number appended), each file is used to log all IO performed by that thread for debugging purposes.

The -Z switch is the same but creates a separate file for each connection as well with an attitional ':' appended followed by the connection number.


No Error
Bad Parameters
System Error, lack of memory or some other resource


This program, it's manual page, and the Debian package were written by Russell Coker <[email protected]>.


The source is available from .

See for further information.