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