import smtplib
fromaddress = 'me@example.com'
toaddress = [fromaddress]
message = """
From: %s
To: %s
Subject: test
Hello
Goodbye
""" % ( fromaddress, toaddress)
server = smtplib.SMTP('mydomain.com')
server.set_debuglevel(1)
server.sendmail(fromaddress, toaddress, message)
このコードはソケットを正常に開きますが、sendmailで「接続が予期せず閉じられました」エラーで失敗します。smtplibソースを見ると、これはsmtpサーバーから空の応答が返されたときに発生します。
上記のコードには何が欠けていますか?私はこれを安価なウェブホスト上でcgiスクリプトとして実行しており、それらのサービスの一部として、sendmailおよびpythonサービスがインストールされています。彼らのドキュメントには、認証を必要としない標準の「phpでメールを送信する」コード例があるので、Pythonでも同じことが機能すると思います。
誰か洞察がありますか?役立つ場合、ホストはhostgatorです。
編集:
根本的なエラーは、SMTPサーバーがハードリセットを発行していることです。つまり、TCP「ピアによる接続のリセット」です。電子メールサーバーはどのような状況でこれを行いますか?