import logging from smtplib import SMTPRecipientsRefused, SMTPSenderRefused from django.core.mail.backends.smtp import EmailBackend logger = logging.getLogger('pretix.base.email') class CustomSMTPBackend(EmailBackend): def test(self, from_addr): try: self.open() self.connection.ehlo_or_helo_if_needed() self.connection.rcpt("test@example.org") (code, resp) = self.connection.mail(from_addr, []) if code != 250: logger.warn('Error testing mail settings, code %d, resp: %s' % (code, resp)) raise SMTPSenderRefused(code, resp, from_addr) senderrs = {} (code, resp) = self.connection.rcpt('test@example.com') if (code != 250) and (code != 251): logger.warn('Error testing mail settings, code %d, resp: %s' % (code, resp)) raise SMTPRecipientsRefused(senderrs) finally: self.close()