![]()
#!/usr/bin/python
import os
import time
import subprocess
from datetime import date
import smtplib
import mimetypes
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.MIMEAudio import MIMEAudio
from email.MIMEImage import MIMEImage
from email.Encoders import encode_base64
def get_bugzs():
p = subprocess.Popen(
'searchbugz > bugz.txt', shell=True, stdout=subprocess.PIPE)
return p.stdout.readlines()
def sendMail(subject, text, *attachmentFilePaths):
gmailUser = 'user@gmail.com'
gmailPassword = 'somepw'
recipient = 'you@yourmail.com'
msg = MIMEMultipart()
msg['From'] = gmailUser
msg['To'] = recipient
msg['Subject'] = subject
msg.attach(MIMEText(text))
for attachmentFilePath in attachmentFilePaths:
msg.attach(getAttachment(attachmentFilePath))
mailServer = smtplib.SMTP('smtp.gmail.com', 587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(gmailUser, gmailPassword)
mailServer.sendmail(gmailUser, recipient, msg.as_string())
mailServer.close()
print('Sent email to %s' % recipient)
def getAttachment(attachmentFilePath):
contentType, encoding = mimetypes.guess_type(attachmentFilePath)
if contentType is None or encoding is not None:
contentType = 'application/octet-stream'
mainType, subType = contentType.split('/', 1)
file = open(attachmentFilePath, 'rb')
if mainType == 'text':
attachment = MIMEText(file.read())
elif mainType == 'message':
attachment = email.message_from_file(file)
elif mainType == 'image':
attachment = MIMEImage(file.read(),_subType=subType)
elif mainType == 'audio':
attachment = MIMEAudio(file.read(),_subType=subType)
else:
attachment = MIMEBase(mainType, subType)
attachment.set_payload(file.read())
encode_base64(attachment)
file.close()
attachment.add_header('Content-Disposition', 'attachment',
filename=os.path.basename(attachmentFilePath))
return attachment
if __name__ == "__main__":
get_bugzs()
bugz_info = open('bugz.txt', 'rb')
bugz_data = bugz_info.read()
bugz_info.close()
fname = ('bugz-'+ str(date.today())+ '.txt')
fobj = open(fname, 'w')
fobj.write(bugz_data)
fobj.close
print 'Bugzs date has been written to', fname
time.sleep(10)
sendMail("Bug Wranglers", "Current Bugs", fname)
print fname, "Has been mailed."
David Abbott - david at linuxcrazy dot com