[llvm-commits] [zorg] r108307 - /zorg/trunk/lnt/lnt/util/NTEmailReport.py

Daniel Dunbar daniel at zuster.org
Tue Jul 13 18:39:55 PDT 2010


Author: ddunbar
Date: Tue Jul 13 20:39:55 2010
New Revision: 108307

URL: http://llvm.org/viewvc/llvm-project?rev=108307&view=rev
Log:
LNT: Add support for multipart email reports (not yet used).

Modified:
    zorg/trunk/lnt/lnt/util/NTEmailReport.py

Modified: zorg/trunk/lnt/lnt/util/NTEmailReport.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/util/NTEmailReport.py?rev=108307&r1=108306&r2=108307&view=diff
==============================================================================
--- zorg/trunk/lnt/lnt/util/NTEmailReport.py (original)
+++ zorg/trunk/lnt/lnt/util/NTEmailReport.py Tue Jul 13 20:39:55 2010
@@ -36,14 +36,29 @@
 
 def emailReport(db, run, baseurl, host, from_, to, was_added=True,
                 will_commit=True):
+    import email.mime.multipart
     import email.mime.text
 
-    subject, report = getReport(db, run, baseurl, was_added, will_commit)
+    subject, report, html_report = getReport(db, run, baseurl, was_added,
+                                             will_commit)
 
-    msg = email.mime.text.MIMEText(report)
-    msg['Subject'] = subject
-    msg['From'] = from_
-    msg['To'] = to
+    # Generate a plain text message if we have no html report.
+    if not html_report:
+        msg = email.mime.text.MIMEText(report)
+        msg['Subject'] = subject
+        msg['From'] = from_
+        msg['To'] = to
+    else:
+        msg = email.mime.multipart.MIMEMultipart('alternative')
+        msg['Subject'] = subject
+        msg['From'] = from_
+        msg['To'] = to
+
+        # Attach parts into message container, according to RFC 2046, the last
+        # part of a multipart message, in this case the HTML message, is best
+        # and preferred.
+        msg.attach(email.mime.text.MIMEText(report, 'plain'))
+        msg.attach(email.mime.text.MIMEText(html_report, 'html'))
 
     s = smtplib.SMTP(host)
     s.sendmail(from_, [to], msg.as_string())
@@ -221,7 +236,7 @@
             if len(tests) > 10:
                 print >>report, '  ... and %d more ...' % (len(tests) - 10,)
 
-    return subject, report.getvalue()
+    return subject, report.getvalue(), None
 
 def getReport(db, run, baseurl, was_added, will_commit):
     report = StringIO.StringIO()
@@ -397,7 +412,7 @@
 
     # FIXME: Where is the old mailer getting the arch from?
     subject = """%s nightly tester results""" % machine.name
-    return subject,report.getvalue()
+    return subject, report.getvalue(), None
 
 if __name__ == '__main__':
     main()





More information about the llvm-commits mailing list