python smtplib
-
06-07-2019 - |
質問
ねえ、私は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で期待される方法で実行します
所属していません StackOverflow