Debugging of the smtplib revealed the actual error response by Exchange:
resp: 5.7.1 This message has been blocked because the HELO/EHLO domain is invalid. It turned out that Exchange checks the name and/or domain of the sending host. My host name was the random container ID assigned by Docker. I had to change the FQDN to something real (like mail.google.com) in the Docker Compose file and then it worked. Am Montag, 20. April 2020 14:43:01 UTC+2 schrieb Fabian Wilske: > > Dear all, > > I'm using Django 1.11 and want to send mails by utilizing an Exchange 2013 > server which only supports NTLM for SMTP authentification. I realized that > the default email backend `django.core.mail.backends.smtp.EmailBackend` > only supports LOGIN, PLAIN or CRAM-MD5 for authentication. Luckily, I found > another promising backend ( > https://github.com/shadiakiki1986/django-smtp-ntlm-backend) for SMTP with > NTLM authentication. Installation of the backend was successful but it does > not work. > > The following happens at the Python console: > > >>> from django.core.mail import send_mail > >>> send_mail('test subject', 'message', '[email protected]', [' > [email protected]'], fail_silently=False,) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File > "/usr/local/lib/python2.7/site-packages/django/core/mail/__init__.py", line > 62, in send_mail > return mail.send() > File > "/usr/local/lib/python2.7/site-packages/django/core/mail/message.py", line > 348, in send > return self.get_connection(fail_silently).send_messages([self]) > File > "/usr/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", > line 111, in send_messages > sent = self._send(message) > File > "/usr/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", > line 127, in _send > self.connection.sendmail(from_email, recipients, > message.as_bytes(linesep='\r\n')) > File "smtplib.py", line 736, in sendmail > self.rset() > File "smtplib.py", line 470, in rset > return self.docmd("rset") > File "smtplib.py", line 395, in docmd > return self.getreply() > File "smtplib.py", line 369, in getreply > raise SMTPServerDisconnected("Connection unexpectedly closed") > smtplib.SMTPServerDisconnected: Connection unexpectedly closed > > > Relevant settings in settings.py: > > EMAIL_ENABLE=True > EMAIL_BACKEND=django_smtp_ntlm_backendNTLMEmail > EMAIL_HOST=<mailserver> > EMAIL_PORT=25 > EMAIL_HOST_USER=<domain>\<user> > EMAIL_HOST_PASSWORD=<password> > DEFAULT_FROM_EMAIL=<email> > EMAIL_USE_SSL=False > > > EMAIL_USE_TLS=False > > > The settings for the mail server are correct and the mail server is > working fine. I am able to send mails with a SMTP testing tool called Swaks > with the same settings using the same mail server. Does anybody has > experience with using Exchange and NTLM authentication for sending emails > with Django 1.11? Maybe there is another email backend I can use? I can > imagine that things might be easier with a newer Django version and Python > 3 because of changes in the underlying smtplib, but I'm stuck to Django > 1.11. I'm grateful for any hints. > > Best regards > Fabian > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/57b27b81-d4da-4aa4-90b5-27613acccf8a%40googlegroups.com.

