[jToolkit-cvs] jToolkit mailer.py,NONE,1.1
Brought to you by:
davidfraser,
friedelwolff
From: <dav...@us...> - 2004-02-10 09:04:47
|
Update of /cvsroot/jtoolkit/jToolkit In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24511 Added Files: mailer.py Log Message: added simple email wrapper, mailer.py --- NEW FILE: mailer.py --- #!/usr/bin/python2.2 """provides a simple wrapper for composing and sending emails""" # Copyright 2002, 2003 St James Software # # This file is part of jToolkit. # # jToolkit is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # jToolkit is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with jToolkit; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import smtplib import socket # some constants for messages contentheader = \ """Content-Type: %s; charset = "%s" """ mimeversion = "MIME-Version: 1.0\n" contenttransferencoding = "Content-Transfer-Encoding: 8bit\n" def makemessage(messagedict): message = contentheader % (messagedict.get('contenttype', 'text/plain'), messagedict.get('charset', 'iso-8859-1')) if 'from' in messagedict: message += "From: %s\n" % messagedict['from'] if 'organization' in messagedict: message += "Organization: %s\n" % messagedict['organization'] if 'to' in messagedict: message += "To: %s\n" % ", ".join(messagedict['to']) if 'subject' in messagedict: message += "Subject: %s\n" % messagedict['subject'] message += mimeversion message += contenttransferencoding message += "\n" if 'body' in messagedict: message += messagedict['body'] return message def dosendmessage(fromemail,recipientemails,message,smtpserver='',errorhandler=None): smtp = smtplib.SMTP() errmsg = "" try: smtp.connect(smtpserver) refused = smtp.sendmail(fromemail,recipientemails,message) errmsg += ", ".join(refused.keys()) if errmsg != "": errmsg = "Recipients " + errmsg + " refused" except smtplib.SMTPRecipientsRefused: errmsg += "All recipients refused" except smtplib.SMTPHeloError: errmsg += "Server didn't respond properly to HELO" except smtplib.SMTPSenderRefused: errmsg += "Sender refused" except smtplib.SMTPDataError: errmsg += "Unexpected error code" except socket.error, msg: if errorhandler is not None: errmsg += "Socket Error: %r" % errorhandler.exception_str() if smtp.sock: smtp.quit() if errmsg != "" and errorhandler is not None: errorhandler.logerror(errmsg) return errmsg |