Я пытаюсь настроить некоторые основные функции электронной почты для небольшого мониторинга script Я работаю в нашей офисной сети. Запуск script (см. Ниже) на моем сервере Ubuntu 10.10 отлично работает, но когда я запускаю его на своем настольном компьютере Windows, он отключается на send: 'STARTTLS\r\n'
с помощью reply: '451 4.7.0 Timeout waiting for client input\r\n'
.
Хотя я все равно буду запускать это на сервере Linux, мне любопытно, почему он не работает под Windows. Разве это разные версии Python, которые вызывают проблему?
Настройка:
SMTP-сервер: Exchange 2010, Windows Server 2008 R2 x64
Python machine # 1: Windows 7 SP1 x64, Python 2.7.1 --- (сбой)
Машина Python # 2: сервер Ubuntu 10.10 x86, Python 2.6.6 --- (работает)
Script:
# -*- coding: utf-8 -*-
import smtplib
def main():
SERVER="exchange-serv"
FROM = "[email protected]"
TO = ["[email protected]"]
TEXT = '''\
From: [email protected]
Subject: testin'
Test message
'''
server = smtplib.SMTP(SERVER)
server.set_debuglevel(1)
server.starttls()
server.login('user', 'pass')
server.sendmail(FROM, TO, TEXT)
server.quit()
if __name__ == "__main__":
main()
Первое, что приходит в голову, это то, что брандмауэр Windows блокирует исходящие соединения сокета из исполняемого файла Python.exe. Вы пытались использовать Python для установления любых других типов соединений, например, используя urllib2
? Если да, каковы результаты?
Предполагая, что вы не можете подключиться с помощью Python, обязательно добавьте Python.exe в качестве исключения в брандмауэр Windows.