オフィス ネットワークで実行している小さな監視スクリプト用に、いくつかの基本的な電子メール機能をセットアップしようとしています。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 サーバー 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()