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