scripts/cronjobs/sendmail.py (27 lines of code) (raw):

# Simple SMTP interface import smtplib # Import the email modules we'll need from email.mime.text import MIMEText __SENDER__ = 'Projects <apsite@apache.org>' __RECIPIENTS__ = 'Site Development <site-dev@apache.org>' __REPLY_TO__ = 'site-dev@apache.org' def sendMail(subject, body='', recipients=__RECIPIENTS__, sender=__SENDER__, port=25, replyTo=__REPLY_TO__): # Create a text/plain message msg = MIMEText(body) msg['Subject'] = subject msg['From'] = sender if isinstance(recipients, str): msg['To'] = recipients else: msg['To'] = ",".join(recipients) if replyTo != None: msg['Reply-To'] = replyTo smtp = smtplib.SMTP('localhost', port) # smtp.set_debuglevel(True) smtp.sendmail(sender, recipients, msg.as_string()) smtp.quit() if __name__ == '__main__': import sys port = 25 if len(sys.argv) > 1: # argv[0] is the script name port = int(sys.argv[1]) # for testing locally: # sudo postfix start # MacoxX # or start a debug server => need to change the SMTP port # python -m smtpd -n -c DebuggingServer localhost:1025 sendMail('Test message, please ignore', "Thanks!", port=port) print("Sent") sendMail('Another Test message, please ignore', "Thanks again!", recipients=['a.b.c','d.e.f'], port=port) print("Sent second")