0

Python CGI スクリプトを実行している Windows サーバーがあり、smtplib に少し問題があります。サーバーは python 2.1 を実行しています (残念ながらアップグレードできません)。とにかく私は次のコードを持っています:

    session = smtplib.SMTP("smtp-auth.ourhosting.com", 587)
    session.login(smtpuser, smtppass)

そして、それは私にこのエラーを与えています:

exceptions.AttributeError : SMTP インスタンスに属性「login」がありません:  

これは、python 2.1 以降に login() メソッドが追加されたためだと思います。どうすればこれを修正できますか?

ファイルを cgi スクリプトと同じディレクトリにアップロードして、モジュールを追加する必要があります (ただし、smtplib は C で記述されており、コンパイルする必要があると思いますが、このサーバーでは実行できません)。

また

Python 2.1 の libsmtp が期待する方法で実行します。

本当にありがとう!

4

2 に答える 2

4

login() は Python 2.2 で導入されました。Python 2.1 独自の smtplib でこれを行う唯一の方法は、手動で AUTH コマンドを発行することであり、あまり面白くありません。

私はそれを完全にテストしていませんが、Python 2.2 の smtplib は、説明したようにコピーすると (おそらく smtplib2.py と呼ぶ)、2.1 で多かれ少なかれ動作するはずです。これは単なる Python モジュールであり、C のコンパイルは必要ありません。ただし、少なくとも依存する hmac.py ライブラリも 2.2 の lib からコピーする必要があります。新しいバージョンの Python を使用して盗むと、email パッケージも必要になり、より多くの作業が必要になる可能性があります。

于 2008-11-03T18:01:51.757 に答える
0

Python 2.1 の libsmtp が期待する方法で実行します。

于 2008-11-03T17:10:47.647 に答える