Improved SMTP testing

This commit is contained in:
Raphael Michel
2016-06-06 23:07:28 +02:00
parent e5edf53f00
commit a7fc8e19fb

View File

@@ -1,7 +1,10 @@
import logging
from smtplib import SMTPRecipientsRefused, SMTPSenderRefused
from django.core.mail.backends.smtp import EmailBackend
logger = logging.getLogger('pretix.base.email')
class CustomSMTPBackend(EmailBackend):
@@ -12,10 +15,12 @@ class CustomSMTPBackend(EmailBackend):
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('')
(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()