.oO  |  List directory  |  History  |  Similar  |  Print version
Home 
Main 
   Databases 
   qmail 
   Old Braindump Pages 
Linux 
FreeBSD 

Main > Nagios Delivery Test

 
rw-rw-r--   ian   linux

Nagios Delivery Test

I put together the following python script in order to verify that mail is being delivered through a server and can be retrieved by POP on the next Nagios test cycle.

#!/usr/bin/python
# $Id: check_delivery.py,v 1.1 2005/05/13 18:01:29 ian Exp ian $

import sys
import re
import poplib
import smtplib
import datetime

date = datetime.datetime.now().strftime("%a, %d %b %Y %H:%M:%S")

host = sys.argv[1]
recipient = sys.argv[2]

warning = 0

# POP existing messages

try:
        popserver = poplib.POP3(host)
        # popserver.set_debuglevel(1)
        popserver.user(recipient)
        popserver.pass_(recipient)
        messagecount, size = popserver.stat()
        if messagecount < 1:
          print "WARNING - no message in INBOX"
          warning = 1
        for id in range(messagecount):
          popserver.dele(id + 1)
        popserver.quit()

except:
        print "CRITIAL - POP server error"
        sys.exit(2)

# Use SMTP to send new message

try:
        testmessage = '''Date: ''' + date + '''
Subject: Nagios Delivery test message
From: ''' + recipient + '''
To: ''' + recipient + '''

Nagios Delivery test message: ''' + date

        smtpserver = smtplib.SMTP(host,25,host)
        # smtpserver.set_debuglevel(1)
        smtpserver.starttls()
        smtpserver.sendmail(sys.argv[2], sys.argv[2], testmessage)
        smtpserver.quit()

except:
        print "CRITIAL - SMTP server error"
        sys.exit(2)

if warning == 1:
        sys.exit(warning)
else:
        print "Mail Delivery OK"


Reference http://braindump.mrzesty.net/Main/NagiosDeliveryTest

Comments: 0 New comment

Prev. Box Backup installation   Bacula Next


Home | Main | Linux | FreeBSD