/breezy/unstable

To get this branch, use:
bzr branch https://code.breezy-vcs.org/breezy/unstable

« back to all changes in this revision

Viewing changes to breezy/smtp_connection.py

  • Committer: Jelmer Vernooij
  • Date: 2017-05-24 01:39:33 UTC
  • mfrom: (3815.3776.6)
  • Revision ID: jelmer@jelmer.uk-20170524013933-ir4y4tqtrsiz2ka2
New upstream snapshot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
import smtplib
24
24
import socket
25
25
 
26
 
from bzrlib import (
 
26
from . import (
27
27
    config,
28
28
    osutils,
29
29
    )
30
 
from bzrlib.errors import (
 
30
from .errors import (
31
31
    NoDestinationAddress,
32
32
    SMTPError,
33
33
    DefaultSMTPConnectionRefused,
52
52
class SMTPConnection(object):
53
53
    """Connect to an SMTP server and send an email.
54
54
 
55
 
    This is a gateway between bzrlib.config.Config and smtplib.SMTP. It
 
55
    This is a gateway between breezy.config.Config and smtplib.SMTP. It
56
56
    understands the basic bzr SMTP configuration information: smtp_server,
57
57
    smtp_username, and smtp_password.
58
58
    """
90
90
        self._connection = self._smtp_factory()
91
91
        try:
92
92
            self._connection.connect(self._smtp_server)
93
 
        except socket.error, e:
 
93
        except socket.error as e:
94
94
            if e.args[0] == errno.ECONNREFUSED:
95
95
                if self._config_smtp_server is None:
96
96
                    raise DefaultSMTPConnectionRefused(socket.error,
147
147
        """Get the origin and destination addresses of a message.
148
148
 
149
149
        :param message: A message object supporting get() to access its
150
 
            headers, like email.Message or bzrlib.email_message.EmailMessage.
 
150
            headers, like email.Message or breezy.email_message.EmailMessage.
151
151
        :return: A pair (from_email, to_emails), where from_email is the email
152
152
            address in the From header, and to_emails a list of all the
153
153
            addresses in the To, Cc, and Bcc headers.
181
181
            self._connect()
182
182
            self._connection.sendmail(from_email, to_emails,
183
183
                                      message.as_string())
184
 
        except smtplib.SMTPRecipientsRefused, e:
 
184
        except smtplib.SMTPRecipientsRefused as e:
185
185
            raise SMTPError('server refused recipient: %d %s' %
186
186
                    e.recipients.values()[0])
187
 
        except smtplib.SMTPResponseException, e:
 
187
        except smtplib.SMTPResponseException as e:
188
188
            raise SMTPError('%d %s' % (e.smtp_code, e.smtp_error))
189
 
        except smtplib.SMTPException, e:
 
189
        except smtplib.SMTPException as e:
190
190
            raise SMTPError(str(e))