[Zope-Checkins] SVN: Zope/trunk/src/Products/MailHost/ Remove the SMTPMailer duplicated from zope.sendmail and make its module a deprecated alias to the equivalent in z.s.

Matthew Wilkes matthew at matthewwilkes.co.uk
Tue Jun 29 12:05:17 EDT 2010


Log message for revision 113980:
  Remove the SMTPMailer duplicated from zope.sendmail and make its module a deprecated alias to the equivalent in z.s.

Changed:
  U   Zope/trunk/src/Products/MailHost/MailHost.py
  U   Zope/trunk/src/Products/MailHost/mailer.py

-=-
Modified: Zope/trunk/src/Products/MailHost/MailHost.py
===================================================================
--- Zope/trunk/src/Products/MailHost/MailHost.py	2010-06-29 16:01:34 UTC (rev 113979)
+++ Zope/trunk/src/Products/MailHost/MailHost.py	2010-06-29 16:05:17 UTC (rev 113980)
@@ -48,6 +48,7 @@
 from OFS.SimpleItem import Item
 
 from zope.interface import implements
+from zope.sendmail.mailer import SMTPMailer
 from zope.sendmail.maildir import Maildir
 from zope.sendmail.delivery import DirectMailDelivery, QueuedMailDelivery, \
                             QueueProcessorThread
@@ -55,11 +56,6 @@
 from interfaces import IMailHost
 from decorator import synchronized
 
-# Use our own TLS/SSL-aware mailer since the zope.sendmail does
-# not support TLS/SSL in this version (should be replaced with
-# the next version)
-from mailer import SMTPMailer
-
 queue_threads = {}  # maps MailHost path -> queue processor threada
 
 LOG = logging.getLogger('MailHost')

Modified: Zope/trunk/src/Products/MailHost/mailer.py
===================================================================
--- Zope/trunk/src/Products/MailHost/mailer.py	2010-06-29 16:01:34 UTC (rev 113979)
+++ Zope/trunk/src/Products/MailHost/mailer.py	2010-06-29 16:05:17 UTC (rev 113980)
@@ -1,74 +1,2 @@
-##############################################################################
-#
-# Copyright (c) 2003 Zope Foundation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-
-"""
-SMTPMailer with TLS/SSL support
-(original code taken from zope.sendmail)
-
-$Id: mailer.py 78981 2007-08-19 06:38:48Z andreasjung $
-"""
-__docformat__ = 'restructuredtext'
-
-import socket
-from smtplib import SMTP
-
-from zope.interface import implements
-from zope.sendmail.interfaces import ISMTPMailer
-
-have_ssl = hasattr(socket, 'ssl')
-
-class SMTPMailer(object):
-
-    implements(ISMTPMailer)
-
-    smtp = SMTP
-
-    def __init__(self, hostname='localhost', port=25,
-                 username=None, password=None, no_tls=False, force_tls=False):
-        self.hostname = hostname
-        self.port = port
-        self.username = username
-        self.password = password
-        self.force_tls = force_tls
-        self.no_tls = no_tls
-
-    def send(self, fromaddr, toaddrs, message):
-        connection = self.smtp(self.hostname, str(self.port))
-
-        # send EHLO
-        code, response = connection.ehlo()
-        if code < 200 or code >300:
-            code, response = connection.helo()
-            if code < 200 or code >300:
-                raise RuntimeError('Error sending HELO to the SMTP server '
-                                   '(code=%s, response=%s)' % (code, response))
-
-        # encryption support
-        have_tls =  connection.has_extn('starttls') 
-        if not have_tls and self.force_tls:
-            raise RuntimeError('TLS is not available but TLS is required')
-
-        if have_tls and have_ssl and not self.no_tls: 
-            connection.starttls()
-            connection.ehlo()
-
-        if connection.does_esmtp: 
-            if self.username is not None and self.password is not None:
-                connection.login(self.username, self.password)
-        elif self.username:
-            raise RuntimeError('Mailhost does not support ESMTP but a username '
-                                'is configured')
-
-        connection.sendmail(fromaddr, toaddrs, message)
-        connection.quit()
+import zope.deprecation
+zope.deprecation.moved('zope.sendmail.mailer', 'Zope 2.14')
\ No newline at end of file



More information about the Zope-Checkins mailing list