File: MailResults.py

package info (click to toggle)
rdkit 201203-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 37,840 kB
  • sloc: cpp: 93,902; python: 51,897; java: 5,192; ansic: 3,497; xml: 2,499; sql: 1,641; yacc: 1,518; lex: 1,076; makefile: 325; fortran: 183; sh: 153; cs: 51
file content (58 lines) | stat: -rwxr-xr-x 1,646 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/env python
import sys, smtplib, base64, cStringIO, time, os.path
from email import Message, Utils

SMTP_HOSTNAME=''
SMTP_USER=''
SMTP_DEST="rdkit-devel@lists.sourceforge.net"
def sendLog(fileName,summaryName=""):

  msg = Message.Message()
  msg["To"]=SMTP_DEST
  msg["From"]=SMTP_USER
  msg["Subject"]='RDKitBuild: Nightly Build Results for %s'%time.strftime("%d/%m/%Y")
  msg["Date"] = Utils.formatdate(localtime=1)
  msg["Message-ID"] = Utils.make_msgid()
  msg["Mime-version"] = "1.0"
  msg["Content-type"]= "Multipart/mixed"
  msg.preamble="Mime message\n"
  msg.epilogue=""

  subMsg = Message.Message()
  subMsg["Content-type"]= "text/plain"
  subMsg["Content-transfer-encoding"]="7bit"
  summaryText="Automatically generated email"
  if summaryName:
    try:
      summaryData=open(summaryName,'r').read()
    except IOError:
      summaryText += "\n Could not open summary file"
    else:
      summaryText += "\n\n    TEST SUMMARY\n"+summaryData
  subMsg.set_payload(summaryText)

  msg.attach(subMsg)

  subMsg = Message.Message()
  subMsg.add_header("Content-type","application/x-gzip",name=os.path.basename(fileName))
  subMsg.add_header("Content-transfer-encoding","base64")
  body=cStringIO.StringIO()
  base64.encode(open(fileName, 'rb'), body)
  subMsg.set_payload(body.getvalue())

  msg.attach(subMsg)
  
  smtp = smtplib.SMTP(SMTP_HOSTNAME)
  smtp.sendmail(msg['From'],
                [msg['To']],
                msg.as_string())
  smtp.quit()

if __name__=="__main__":
  import sys
  fName = sys.argv[1]
  if len(sys.argv)>2:
    summaryName=sys.argv[2]
  else:
    summaryName = ""
  sendLog(fName,summaryName)