#!/usr/bin/env python import sys import smtplib from email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText def send_email_account(remote_server, remote_port, username, password, email_from, email_to, subject, body): if (remote_server == "smtp.gmail.com"): send_email_gmail(username, password, email_from, email_to, subject, body) else: # connect to remote mail server and forward message on server = smtplib.SMTP(remote_server, remote_port) msg = MIMEMultipart() msg['From'] = email_from msg['To'] = email_to msg['Subject'] = subject msg.attach(MIMEText(body, 'plain')) smtp_sendmail_return = "" try: server.login(username, password) smtp_sendmail_return = server.sendmail(email_from, email_to, msg.as_string()) except Exception, e: print 'SMTP Exception:\n' + str( e) + '\n' + str( smtp_sendmail_return) finally: server.quit() def send_email_gmail(username, password, email_from, email_to, subject, body): # connect to remote mail server and forward message on server = smtplib.SMTP("smtp.gmail.com", 587) message = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n%s" % (email_from, email_to, subject, body) smtp_sendmail_return = "" try: server.ehlo() server.starttls() server.login(username,password) smtp_sendmail_return = server.sendmail(email_from, email_to, message) except Exception, e: print 'SMTP Exception:\n' + str( e) + '\n' + str( smtp_sendmail_return) finally: server.quit() def loademails(filename): with open(filename, 'r') as f: return f.read().splitlines() def loadbody(filename): with open(filename, 'r') as f: return f.read() if __name__ == "__main__": def usage(): print "%s <email server> <server port> <login name> <login password> <from emailaddress> <subject> <to emailaddress file> <email body file>" % (sys.argv[0]) if (len(sys.argv) <> 9): usage() sys.exit(0) server = sys.argv[1] port = sys.argv[2] username = sys.argv[3] password = sys.argv[4] fromemail = sys.argv[5] subject = sys.argv[6] emailfile = sys.argv[7] bodyfile = sys.argv[8] body = loadbody(bodyfile) for toemail in loademails(emailfile): send_email_account(server, port, username, password, fromemail, toemail, subject, body)