Python smtplib, время ожидания на старте - PullRequest
1 голос
/ 02 мая 2011

Я пытаюсь настроить некоторые базовые функции электронной почты для небольшого сценария мониторинга, который выполняется в нашей офисной сети.Запуск сценария (см. Ниже) на моем сервере 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машина # 1: Windows 7 SP1 x64, Python 2.7.1 --- (не работает)

Python машина # 2: Ubuntu server 10.10 x86, Python 2.6.6 --- (работает)

Сценарий:

# -*- coding: utf-8 -*-
import smtplib


def main():
    SERVER="exchange-serv"
    FROM = "valid@foo.com"
    TO = ["valid2@foo.com"]
    TEXT = '''\
    From: valid@foo.com
    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()

1 Ответ

1 голос
/ 02 мая 2011

Первое, что приходит на ум, - это то, что брандмауэр Windows блокирует исходящие соединения с сокетами из исполняемого файла Python.exe.Вы пытались использовать Python для установления любых других типов соединений, таких как urllib2?Если да, каковы результаты?

Если вы не можете подключиться с помощью Python, то обязательно добавьте Python.exe как исключение в брандмауэр Windows.

...