Отправка электронной почты с использованием 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)
,
В моем тестировании это работало с этим портом.