Отправка электронной почты с использованием Exchange 2016 с использованием сценария Python

Я пытаюсь отправить электронное письмо через внутренний почтовый сервер Exchange 2016, используя следующий скрипт Python:

#!/usr/bin/python

import smtplib

TO = 'user@example.com'
SUBJECT = 'TEST MAIL'
TEXT = 'Here is a message from python.'

# exchange Sign In
exchange_sender = 'test@domain.com'
exchange_passwd = 'Password'

server = smtplib.SMTP('mail.domain.com', 25)
server.ehlo()
server.starttls()
server.login(exchange_sender, exchange_passwd)

BODY = '\r\n'.join(['To: %s' % TO,
                    'From: %s' % exchange_sender,
                    'Subject: %s' % SUBJECT,
                    '', TEXT])

try:
    server.sendmail(exchange_sender, [TO], BODY)
    print ('email sent')
except:
    print ('error sending mail')

server.quit()

Я создал нового пользователя только для этой задачи со стандартным почтовым ящиком, где я могу успешно войти в систему, используя OWA с теми же учетными данными. Однако при выполнении сценария выше я получаю сообщение об ошибке:

    535, '5.7.3 Authentication unsuccessful'

Когда я изменяю логин и пароль пользователя на свою учетную запись, он работает правильно и электронное письмо отправляется. Ясно, что есть разница в разрешениях пользователя, но я не могу найти где. Кто-нибудь может дать мне подсказку?

1 ответ

Пожалуйста, попробуйте порт 587, server = smtplib.SMTP('mail.domain.com', 587),

В моем тестировании это работало с этим портом.

Другие вопросы по тегам