MailPing Homepage

SourceForge.net Logo

SourceForge project page for MailPing

There isn't much here, yet. You can contact me with questions and go here to download the software.

Here's the readme file from the distribution:

$Id$

Index
=====

- What does it do?
- Future work
- Building
- Configuration
- Running
- Copyright
- Author

What does it do?
================

MailPing is used to exercise SMTP mail hubs and relays from a user's point
of view.  It sends messages to SMTP servers that it monitors, looks for
the messages to come back (this part isn't done yet), and calculates
how long the message took in its travels.  This way, an administrator
can get an idea of how well her mail servers are operating and hopefully
correct outages or performance problems before users notice.

I have been looking for a tool that does this for years, as many companies
I have consulted for have a difficult time getting a grasp on how well
their mail servers are doing their job.  Monitoring aspects of a mail
server, such as whether or not the mail process running, CPU load, disk
I/O, mail queue depth, etc. is important, however it doesn't answer
the most important question of how well the service is performing for
end users.  If you are only monitoring server aspects like CPU and disk
I/O utilization, there will be times when you won't know that messages
are taking hours to get delivered, or not getting delivered at all,
until your users start to complain, nor will you be able to predict
these problems and be proactive about locating the cause and fixing it.

MailPing is the solution to these irritations that have become all too
familiar to myself and other mail administrators.  It is written in
Java to be easily cross-platform and reliable.  It is also open-source,
so anyone can use and modify the software as needed.

Future Work
===========

See the TODO file for details, but here are some notable items:

	- Notice when a message is sent but never received.

	- Support for logging to a round-robin database (RRD), see:

		http://www.rrdtool.org/

	  This will probably be done with jRRD from the OpenNMS
	  project:

		http://www.opennms.org/

	- Ability to call external programs when test messages are
	  not received within a certain period of time.  I.e.: to
	  interface with an external monitoring and/or notification
	  system.

	- OpenNMS integration.

		http://www.opennms.org/

	- A "MailRemote" program to inject messages from a host
	  other than the one on which MailPing is running.  For
	  example, this will allow test messages to be submitted
	  from outside a firewall to a MailPing server on the
	  internal network, in order to test incoming mail through
	  the firewall.

	- A "MailBouncer" program that would recieve messages, add a
	  received timestamp them, and either bounce them back or forward
	  them to another address.  This would allow the opposite of
	  "MailRemote," that is, testing and timing the delivery of
	  outgoing mail through a firewall.

	- Support for retrieving mail from POP3 and IMAP4 servers.

Building
========

Prerequisites:

	- Java 1.3 SE (Standard Edition) SDK

		http://java.sun.com/j2se/1.3/download.html

	- Jakarta Ant from the Apache Foundation (any version should be fine) 

		http://jakarta.apache.org/ant/

To build, simply execute "ant" in the top level directory.  It will
create a MailPing-<dstamp>.jar file in dist/lib.

Configuration
=============

Copy the example.properties file to mailping.properties, and edit
as needed.

Running
=======

Make sure that you have a Java 1.3 Standard Edition (SE) or better
Java Runtime Environment (JRE) or Software Development Kit (SDK)
installed.

	http://java.sun.com/j2se/1.3/download.html

If you run "java -version", your Java runtime environment should
be version 1.3 or higher.  E.g.:

	[dgregor@linux MailPing]$ java -version
-->	java version "1.4.1_01"
	Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
	Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)

On UNIX, assuming that java is in your path, MailPing-<dstamp>.jar is
in `pwd`/lib, and that mailping.properties is in the current directory,
run (as root):

	java -jar lib/MailPing-<dstamp>.jar

There is also an example startup script in bin/mailping.sh.  You will
most likely have to change some of the path names at the top of the
script.  If you are going to use the init script, it is suggested
that you add "mailping.logfile=../logs/mailping.log" to your
mailping.properties file.

On Windows:

	This part yet to be written.  If you know how to do it,
	please let me know. :)

Copyright
=========

Copyright (c) 2002-2003 Daniel J. Gregor, Jr.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

   - Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.
   - Redistributions in binary form must reproduce the above
     copyright notice, this list of conditions and the following
     disclaimer in the documentation and/or other materials provided
     with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

Author
======

Daniel J. Gregor, Jr., <dj@gregor.com>

Please feel free to email with any comments, questions, suggestions,
patches, etc..


	Good Luck!
	- DJ Gregor