def start(self):
        import mock

        def unbound_on_send(SMTP, sender, recipient, msg, *a, **kwargs):
            self.sent_message = msg
            return self._on_request(SMTP, sender, recipient, msg, *a, **kwargs)
        self._patcher = mock.patch('smtplib.SMTP.sendmail',
                                   unbound_on_send)
        self._patcher.start()

        def unbound_on_login(SMTP, username, password, *a, **kwargs):
            return self._on_login(SMTP, username, password, *a, **kwargs)

        self._patcher2 = mock.patch('smtplib.SMTP.login',
                                    unbound_on_login)
        self._patcher2.start()

        def unbound_on_init(SMTP, server, *a, **kwargs):
            return self._on_init(SMTP, server, *a, **kwargs)

        self._patcher3 = mock.patch('smtplib.SMTP.__init__',
                                    unbound_on_init)
        self._patcher3.start()

        def unbound_on_debuglevel(SMTP, level, *a, **kwargs):
            return self._on_debuglevel(SMTP, level, *a, **kwargs)

        self._patcher4 = mock.patch('smtplib.SMTP.debuglevel',
                                    unbound_on_debuglevel)
        self._patcher4.start()

        def unbound_on_quit(SMTP, *a, **kwargs):
            return self._on_quit(SMTP, *a, **kwargs)

        def unbound_on_starttls(SMTP, *a, **kwargs):
            return self._on_starttls(SMTP, *a, **kwargs)

        self._patcher5 = mock.patch('smtplib.SMTP.quit',
                                    unbound_on_quit)
        self._patcher5.start()

        def unbound_on_empty(SMTP, *a, **kwargs):
            return None

        self._patcher6 = mock.patch('smtplib.SMTP.ehlo',
                                    unbound_on_empty)
        self._patcher6.start()
        self._patcher7 = mock.patch('smtplib.SMTP.close',
                                    unbound_on_empty)
        self._patcher7.start()
        self._patcher8 = mock.patch('smtplib.SMTP.starttls',
                                    unbound_on_starttls)
        self._patcher8.start()