[Checkins] SVN: zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/mail_util.py added
Andreas Jung
andreas at andreas-jung.com
Sat Jul 18 03:41:44 EDT 2009
Log message for revision 101979:
added
Changed:
U zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/mail_util.py
-=-
Modified: zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/mail_util.py
===================================================================
--- zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/mail_util.py 2009-07-18 07:26:17 UTC (rev 101978)
+++ zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/mail_util.py 2009-07-18 07:41:42 UTC (rev 101979)
@@ -3,31 +3,44 @@
# (C) 2008, 2009, ZOPYX Ltd & Co. KG, Tuebingen, Germany
##########################################################################
+import os
import email.MIMEText
import email.Header
+import email.MIMEBase
+import email.MIMEMultipart
+from email import Encoders
from ConfigParser import ConfigParser
from zope.sendmail.mailer import SMTPMailer
-CP = ConfigParser(dict(hostname='localhost',
- username=None,
- password=None,
- no_tls=False,
- force_tls=False,
- ))
+def makeMailer():
-CP.read('email.ini')
+ CP = ConfigParser()
+ CP.read('email.ini')
-Mailer = SMTPMailer(hostname=CP.get('mail', 'hostname'),
- username=CP.get('mail', 'username'),
- password=CP.get('mail', 'password'),
- no_tls=CP.getboolean('mail', 'no_tls'),
- force_tls=CP.getboolean('mail', 'force_tls'))
+ return SMTPMailer(hostname=CP.get('mail', 'hostname') or 'localhost',
+ username=CP.get('mail', 'username') or None,
+ password=CP.get('mail', 'password') or None,
+ no_tls=CP.getboolean('mail', 'no_tls') or False,
+ force_tls=CP.getboolean('mail', 'force_tls') or False)
-def send_email(sender, recipient, subject, body):
- msg = email.MIMEText.MIMEText(body.encode('UTF-8'), 'plain', 'UTF-8')
+def send_email(sender, recipient, subject, body, attachments=[]):
+
+ mailer = makeMailer()
+
+ msg = email.MIMEMultipart.MIMEMultipart()
msg["From"] = sender
msg["To"] = recipient
msg["Subject"] = email.Header.Header(subject, 'UTF-8')
- Mailer.send(sender, [recipient], msg.as_string())
+ msg.attach(email.MIMEText.MIMEText(body.encode('UTF-8'), 'plain', 'UTF-8'))
+ for att in attachments:
+ part = email.MIMEBase.MIMEBase('application', "octet-stream")
+ part.set_payload(file(att, 'rb').read())
+ Encoders.encode_base64(part)
+ part.add_header('Content-Disposition',
+ 'attachment; filename="%s"' % os.path.basename(att))
+ msg.attach(part)
+ mailer.send(sender, [recipient], msg.as_string())
+
+
More information about the Checkins
mailing list