##// END OF EJS Templates
admin.py: Login to email server added
Miguel Valdez -
r683:e5270acfc266
parent child
Show More
@@ -16,13 +16,15 from email.mime.multipart import MIMEMultipart
16
16
17 class SchainConfigure():
17 class SchainConfigure():
18
18
19 __DEFAULT_SENDER_EMAIL = "notifier-schain@jro.igp.gob.pe"
20 __DEFAULT_ADMINISTRATOR_EMAIL = "miguel.urco@jro.igp.gob.pe"
19 __DEFAULT_ADMINISTRATOR_EMAIL = "miguel.urco@jro.igp.gob.pe"
21 __DEFAULT_EMAIL_SERVER = "jro-zimbra.igp.gob.pe"
20 __DEFAULT_EMAIL_SERVER = "jro-zimbra.igp.gob.pe"
21 __DEFAULT_SENDER_EMAIL = "notifier-schain@jro.igp.gob.pe"
22 __DEFAULT_SENDER_PASS = ""
22
23
23 __SCHAIN_ADMINISTRATOR_EMAIL = "CONTACT"
24 __SCHAIN_ADMINISTRATOR_EMAIL = "CONTACT"
24 __SCHAIN_EMAIL_SERVER = "MAILSERVER"
25 __SCHAIN_EMAIL_SERVER = "MAILSERVER"
25 __SCHAIN_SENDER_EMAIL = "MAILSERVER_ACCOUNT"
26 __SCHAIN_SENDER_EMAIL = "MAILSERVER_ACCOUNT"
27 __SCHAIN_SENDER_PASS = "MAILSERVER_PASSWORD"
26
28
27 def __init__(self, initFile = None):
29 def __init__(self, initFile = None):
28
30
@@ -59,6 +61,7 class SchainConfigure():
59 def __initFromHardCode(self):
61 def __initFromHardCode(self):
60
62
61 self.__sender_email = self.__DEFAULT_SENDER_EMAIL
63 self.__sender_email = self.__DEFAULT_SENDER_EMAIL
64 self.__sender_pass = self.__DEFAULT_SENDER_PASS
62 self.__admin_email = self.__DEFAULT_ADMINISTRATOR_EMAIL
65 self.__admin_email = self.__DEFAULT_ADMINISTRATOR_EMAIL
63 self.__email_server = self.__DEFAULT_EMAIL_SERVER
66 self.__email_server = self.__DEFAULT_EMAIL_SERVER
64
67
@@ -79,7 +82,13 class SchainConfigure():
79 self.__sender_email = self.__parser.get("schain", self.__SCHAIN_SENDER_EMAIL)
82 self.__sender_email = self.__parser.get("schain", self.__SCHAIN_SENDER_EMAIL)
80 except:
83 except:
81 self.__sender_email = self.__DEFAULT_SENDER_EMAIL
84 self.__sender_email = self.__DEFAULT_SENDER_EMAIL
82
85
86 # get the sender password
87 try:
88 self.__sender_pass = self.__parser.get("schain", self.__SCHAIN_SENDER_PASS)
89 except:
90 self.__sender_pass = self.__DEFAULT_SENDER_PASS
91
83 # get the administrator email
92 # get the administrator email
84 try:
93 try:
85 self.__admin_email = self.__parser.get("schain", self.__SCHAIN_ADMINISTRATOR_EMAIL)
94 self.__admin_email = self.__parser.get("schain", self.__SCHAIN_ADMINISTRATOR_EMAIL)
@@ -100,6 +109,10 class SchainConfigure():
100
109
101 return self.__sender_email
110 return self.__sender_email
102
111
112 def getSenderPass(self):
113
114 return self.__sender_pass
115
103 def getAdminEmail(self):
116 def getAdminEmail(self):
104
117
105 return self.__admin_email
118 return self.__admin_email
@@ -157,6 +170,7 class SchainNotify:
157 confObj = SchainConfigure()
170 confObj = SchainConfigure()
158
171
159 self.__emailFromAddress = confObj.getSenderEmail()
172 self.__emailFromAddress = confObj.getSenderEmail()
173 self.__emailPass = confObj.getSenderPass()
160 self.__emailToAddress = confObj.getAdminEmail()
174 self.__emailToAddress = confObj.getAdminEmail()
161 self.__emailServer = confObj.getEmailServer()
175 self.__emailServer = confObj.getEmailServer()
162
176
@@ -192,15 +206,23 class SchainNotify:
192 msg.attach(part)
206 msg.attach(part)
193
207
194 # Create an instance in SMTP server
208 # Create an instance in SMTP server
195 smtp = smtplib.SMTP(self.__emailServer)
209 try:
210 smtp = smtplib.SMTP(self.__emailServer)
211 except:
212 print "***** Could not connect to server %s *****" %self.__emailServer
213 return 0
214
196 # Start the server:
215 # Start the server:
197 # smtp.ehlo()
216 # smtp.ehlo()
198 # smtp.login(email_from, email_from_pass)
217 if self.__emailPass:
218 smtp.login(self.__emailFromAddress, self.__emailPass)
199
219
200 # Send the email
220 # Send the email
201 smtp.sendmail(msg['From'], msg['To'], msg.as_string())
221 smtp.sendmail(msg['From'], msg['To'], msg.as_string())
202 smtp.quit()
222 smtp.quit()
223 smtp.close()
203
224
225 return 1
204
226
205 def sendAlert(self, message, subject = "", subtitle="", filename=""):
227 def sendAlert(self, message, subject = "", subtitle="", filename=""):
206 """sendAlert sends an email with the given message and optional title.
228 """sendAlert sends an email with the given message and optional title.
@@ -216,14 +238,15 class SchainNotify:
216 print "***** Sending alert to %s *****" %self.__emailToAddress
238 print "***** Sending alert to %s *****" %self.__emailToAddress
217 # set up message
239 # set up message
218
240
219 self.sendEmail(email_from=self.__emailFromAddress,
241 sent=self.sendEmail(email_from=self.__emailFromAddress,
220 email_to=self.__emailToAddress,
242 email_to=self.__emailToAddress,
221 subject=subject,
243 subject=subject,
222 message=message,
244 message=message,
223 subtitle=subtitle,
245 subtitle=subtitle,
224 filename=filename)
246 filename=filename)
225
247
226 print "***** Your system administrator has been notified *****"
248 if sent:
249 print "***** Your system administrator has been notified *****"
227
250
228
251
229 def notify(self, email, message, subject = "", subtitle="", filename=""):
252 def notify(self, email, message, subject = "", subtitle="", filename=""):
@@ -1,5 +1,8
1 #Copy this file to /etc/schain.conf
1 #Copy this file to /etc/schain.conf
2
2 [schain]
3 [schain]
4
3 CONTACT = miguel.urco@jro.igp.gob.pe
5 CONTACT = miguel.urco@jro.igp.gob.pe
4 MAILSERVER = jro-zimbra.igp.gob.pe
6 MAILSERVER = jro-zimbra.igp.gob.pe
5 MALSERVER_ACCOUNT = notifier-schain@jro.igp.gob.pe No newline at end of file
7 MALSERVER_ACCOUNT = notifier-schain@jro.igp.gob.pe
8 MAILSERVER_PASSWORD = No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now