• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 268
  • Last Modified:

Need To Add Email Alerts feature in CaiCai?

Hi,

I am using CaiCai as Network Monitoring System (caicai.sourceforge.net). CaiCai uses ICMP to get status from devices. Nice application as it is not dependent on SNMP. It is web based and written in Python. I am alien to python.Whenever a device does not respond to pings from CaiCai then it generates error and posts them on a web page. This application does not have any email alerting mechanism. I want to add the email alerts mechanism to this application. Can some body help me out. I am attaching the error generating mechanism in caicai.
# updates data (or adds entry, is not present there) for errors_stats[]
# error_report is a matrix cell (which is a matrix itself) from the processed logfile
def update_errors_stats (error_report):
	error_duration = error_report[1] - error_report[0]
	
	line_counter = 0
	for i in errors_stats:
		if i[0] == error_report[2]:
			if errors_stats[line_counter][1] > error_duration:
				errors_stats[line_counter][1] = error_duration
			if errors_stats[line_counter][2] < error_duration:
				errors_stats[line_counter][2] = error_duration
			errors_stats[line_counter][3] += 1
			errors_stats[line_counter][4] += error_duration
			return ()
		line_counter += 1
	
	# entry not found, let's add one then
	entry_for_errors_stats = []
	entry_for_errors_stats.append (error_report[2])
	entry_for_errors_stats.append (error_duration)
	entry_for_errors_stats.append (error_duration)
	entry_for_errors_stats.append (1)
	entry_for_errors_stats.append (error_duration)	
	errors_stats.append (entry_for_errors_stats)
	return ()

Open in new window

0
Kamran Arshad
Asked:
Kamran Arshad
  • 3
1 Solution
 
ramromconsultant Commented:
Take a look at the smtplib module. It is part of the Python distribution. There is sample code in the docs that will probably do the trick, which I show here.

You will have to make some changes (how msg is constructed, and where the SMTP server is).
import smtplib
 
def prompt(prompt):
    return raw_input(prompt).strip()
 
fromaddr = prompt("From: ")
toaddrs  = prompt("To: ").split()
print "Enter message, end with ^D (Unix) or ^Z (Windows):"
 
# Add the From: and To: headers at the start!
msg = ("From: %s\r\nTo: %s\r\n\r\n"
       % (fromaddr, ", ".join(toaddrs)))
while 1:
    try:
        line = raw_input()
    except EOFError:
        break
    if not line:
        break
    msg = msg + line
 
print "Message length is " + repr(len(msg))
 
server = smtplib.SMTP('localhost')
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()

Open in new window

0
 
Kamran ArshadIT AssociateAuthor Commented:
Thanks a lot. I will experiment on this smtplib and hopefully get something out of it.
0
 
Kamran ArshadIT AssociateAuthor Commented:
Thanks for the thought. Ok lets keep it open and I will update you. So far I have done simple emailing using the python code you gave me. It is not Integrated with caicai and I am working on it. Will update you when any error or problem occurs.
0
 
Kamran ArshadIT AssociateAuthor Commented:
I am able to send emails from CaiCai NMS.
0

Featured Post

SMB Security Just Got a Layer Stronger

WatchGuard acquires Percipient Networks to extend protection to the DNS layer, further increasing the value of Total Security Suite.  Learn more about what this means for you and how you can improve your security with WatchGuard today!

  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now