File: //proc/self/root/lib/python2.7/site-packages/lap/mailsend.py
#!/usr/bin/python
import smtplib
import base64
import sys
import yaml
import syslog
def __run__(params):
try:
server = smtplib.SMTP(params.get('host'),params.get('port'),5000)
helo = server.docmd("HELO %s" % params.get('helo'))
if helo[0] != 250:
return [2, 'CRITICAL: Helo {0}'.format(str(helo[1]))]
if params.get('login_required'):
login = base64.b64encode(params.get('login'))
password = base64.b64encode(params.get('password'))
auth = server.docmd("auth login")
auth_login = server.docmd(login)
auth_pass = server.docmd(password)
syslog.syslog("%s %s %s" % (auth[0],auth_login[0],auth_pass[0]))
if auth[0] != auth_login[0] != 334 and auth_pass[0] != 235:
return [2, 'CRITICAL: Authentication Failed']
mail_from = server.docmd("MAIL FROM:<%s>" % params.get('from_address'))
if mail_from[0] != 250:
return [2, 'CRITICAL: Mail From {0}'.format(str(mail_from[1]))]
rcpt_to = server.docmd("RCPT TO:<%s>" % params.get('rcpt'))
if rcpt_to[0] != 250:
return [2, 'CRITICAL: Rcpt To {0}'.format(str(rcpt_to[1]))]
server.quit()
return [0, 'OK: All mail retr codes return success']
except Exception,e:
return [2, 'CRITICAL: {0}'.format(str(e))]