#!/usr/bin/python # Copyright 2011 Google Inc. All Rights Reserved. from email import Encoders from email.MIMEBase import MIMEBase from email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText import getpass import os import smtplib import sys class EmailSender(object): class Attachment(object): def __init__(self, name, content): self.name = name self.content = content def SendEmail(self, email_to, subject, text_to_send, email_cc=None, email_bcc=None, email_from=None, msg_type="plain", attachments=None): # Email summary to the current user. msg = MIMEMultipart() if not email_from: email_from = os.path.basename(__file__) msg["To"] = ",".join(email_to) msg["Subject"] = subject if email_from: msg["From"] = email_from if email_cc: msg["CC"] = ",".join(email_cc) email_to += email_cc if email_bcc: msg["BCC"] = ",".join(email_bcc) email_to += email_bcc msg.attach(MIMEText(text_to_send, msg_type)) if attachments: for attachment in attachments: part = MIMEBase("application", "octet-stream") part.set_payload(attachment.content) Encoders.encode_base64(part) part.add_header("Content-Disposition", "attachment; filename=\"%s\"" % attachment.name) msg.attach(part) # Send the message via our own SMTP server, but don't include the # envelope header. s = smtplib.SMTP("localhost") s.sendmail(email_from, email_to, msg.as_string()) s.quit()