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