質問

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

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

そしてこのエラーが発生しています:

exceptions.AttributeError :  SMTP instance has no attribute 'login' :  

これは、login()メソッドがpython 2.1の後に追加されたためだと考えています。どうすれば修正できますか?

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

または

Python 2.1のlibsmtpで期待される方法で実行します

どうもありがとう!

役に立ちましたか?

解決

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

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

他のヒント

  

Python 2.1のlibsmtpで期待される方法で実行します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top