summaryrefslogtreecommitdiffstats
path: root/pym/elog_modules
diff options
context:
space:
mode:
authorMarius Mauch <genone@gentoo.org>2006-06-10 22:38:44 +0000
committerMarius Mauch <genone@gentoo.org>2006-06-10 22:38:44 +0000
commit0366266bfc299b2384ec96dbc144a42973f83f9f (patch)
treeae784793d0cabbfa50a90b4a1b2b78091304addc /pym/elog_modules
parent4688f15f215f2d09a52238f059eca56761aaa014 (diff)
downloadportage-0366266bfc299b2384ec96dbc144a42973f83f9f.tar.gz
portage-0366266bfc299b2384ec96dbc144a42973f83f9f.tar.bz2
portage-0366266bfc299b2384ec96dbc144a42973f83f9f.zip
refactor elog mail stuff so it's reusable by other tools (like glsa-check)
svn path=/main/trunk/; revision=3484
Diffstat (limited to 'pym/elog_modules')
-rw-r--r--pym/elog_modules/mod_mail.py75
1 files changed, 18 insertions, 57 deletions
diff --git a/pym/elog_modules/mod_mail.py b/pym/elog_modules/mod_mail.py
index cc67015f7..b8e17a51a 100644
--- a/pym/elog_modules/mod_mail.py
+++ b/pym/elog_modules/mod_mail.py
@@ -1,61 +1,22 @@
-import smtplib, email.Message, socket, portage_exception
+# portage.py -- core Portage functionality
+# Copyright 1998-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+import portage_mail, socket
def process(mysettings, cpv, logentries, fulltext):
- mymailhost = "localhost"
- mymailport = 25
- mymailuser = ""
- mymailpasswd = ""
- myrecipient = "root@localhost"
-
- # Syntax for PORTAGE_LOG_MAILURI (if defined):
- # adress [[user:passwd@]mailserver[:port]]
- # where adress: recipient adress
- # user: username for smtp auth (defaults to none)
- # passwd: password for smtp auth (defaults to none)
- # mailserver: smtp server that should be used to deliver the mail (defaults to localhost)
- # port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000))
- if " " in mysettings["PORTAGE_ELOG_MAILURI"]:
- myrecipient, mymailuri = mysettings["PORTAGE_ELOG_MAILURI"].split()
- if "@" in mymailuri:
- myauthdata, myconndata = mymailuri.rsplit("@", 1)
- try:
- mymailuser,mymailpasswd = myauthdata.split(":")
- except ValueError:
- print "!!! invalid SMTP AUTH configuration, trying unauthenticated ..."
- else:
- myconndata = mymailuri
- if ":" in myconndata:
- mymailhost,mymailport = myconndata.split(":")
- else:
- mymailhost = myconndata
+ if mysettings.has_key("PORTAGE_ELOG_MAILURI"):
+ myrecipient = mysettings["PORTAGE_ELOG_MAILURI"].split()[0]
else:
- myrecipient = mysettings["PORTAGE_ELOG_MAILURI"]
- try:
- myfrom = mysettings["PORTAGE_ELOG_MAILFROM"]
-
- mymessage = email.Message.Message()
- mymessage.set_unixfrom(myfrom)
- mymessage.set_payload(fulltext)
- mymessage["To"] = myrecipient
- mymessage["From"] = myfrom
-
- mysubject = mysettings["PORTAGE_ELOG_MAILSUBJECT"]
- mysubject = mysubject.replace("${PACKAGE}", cpv)
- mysubject = mysubject.replace("${HOST}", socket.getfqdn())
-
- mymessage["Subject"] = mysubject
-
- if int(mymailport) > 100000:
- myconn = smtplib.SMTP(mymailhost, int(mymailport) - 100000)
- myconn.starttls()
- else:
- myconn = smtplib.SMTP(mymailhost, mymailport)
- if mymailuser != "" and mymailpasswd != "":
- myconn.login(mymailuser, mymailpasswd)
- myconn.sendmail(myfrom, myrecipient, mymessage.as_string())
- myconn.quit()
- except smtplib.SMTPException, e:
- raise portage_exception.PortageException("!!! An error occured while trying to send logmail:\n"+str(e))
- except socket.error, e:
- raise portage_exception.PortageException("!!! A network error occured while trying to send logmail:\n"+str(e)+"\nSure you configured PORTAGE_ELOG_MAILURI correctly?")
+ myrecipient = "root@localhost"
+
+ myfrom = mysettings["PORTAGE_ELOG_MAILFROM"]
+ mysubject = mysettings["PORTAGE_ELOG_MAILSUBJECT"]
+ mysubject = mysubject.replace("${PACKAGE}", cpv)
+ mysubject = mysubject.replace("${HOST}", socket.getfqdn())
+
+ mymessage = portage_mail.create_message(myfrom, myrecipient, mysubject, fulltext)
+ portage_mail.send_mail(mysettings, mymessage)
+
return