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"
|