summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/core/mail/backends/smtp.py2
-rw-r--r--tests/mail/tests.py10
2 files changed, 12 insertions, 0 deletions
diff --git a/django/core/mail/backends/smtp.py b/django/core/mail/backends/smtp.py
index df47d4e823..c9e0a18728 100644
--- a/django/core/mail/backends/smtp.py
+++ b/django/core/mail/backends/smtp.py
@@ -56,6 +56,8 @@ class EmailBackend(BaseEmailBackend):
self.connection.ehlo()
self.connection.starttls()
self.connection.ehlo()
+ if self.username and self.password:
+ self.connection.login(self.username, self.password)
except smtplib.SMTPException:
if not self.fail_silently:
raise
diff --git a/tests/mail/tests.py b/tests/mail/tests.py
index a380ecf3d7..4fcea7b8ca 100644
--- a/tests/mail/tests.py
+++ b/tests/mail/tests.py
@@ -880,6 +880,16 @@ class SMTPBackendTests(BaseEmailBackendTests, SimpleTestCase):
self.assertEqual(backend.username, '')
self.assertEqual(backend.password, '')
+ def test_auth_attempted(self):
+ """
+ Test that opening the backend with non empty username/password tries
+ to authenticate against the SMTP server.
+ """
+ backend = smtp.EmailBackend(
+ username='not empty username', password='not empty password')
+ self.assertRaisesMessage(SMTPException,
+ 'SMTP AUTH extension not supported by server.', backend.open)
+
def test_server_stopped(self):
"""
Test that closing the backend while the SMTP server is stopped doesn't