-1

Gmail にログインできる Python プログラムを作成しています。

このプログラムの目的は、ユーザー名とパスワードの組み合わせが存在し、正しいかどうかを確認することです。

このプログラムは、ユーザー名とパスワードの組み合わせの存在をテストするためのものであるため、Gmail 内のメールの内容を知る必要はありません。

このプログラムの入力はユーザー名パスワードです

このプログラムの出力は次のいずれかです。

ログイン成功

また

ログイン失敗

ログインの失敗は次の可能性があります。

  1. 既存のユーザー名 + 間違ったパスワード
  2. 存在しないユーザー名

私の考えは、最初に Gmail にログインすることです。その後、ログインに失敗すると、Gmail Web ページはログイン Web ページに特定のメッセージを表示します。Web ページのコンテンツを解析して、特定のメッセージが含まれているかどうかを確認できます。

ただし、Python で Gmail にログインする方法はまだわかりません。使用できるモジュールを教えていただくか、小さなサンプル コードを書いてください。

4

3 に答える 3

2

ここにアイデアがあります:

アカウントからメールを送信して、送信されるかどうかを確認してみませんか?smtplibこれは、Python標準モジュールで行うことができます。ここにコード例があります。モジュールのドキュメントを調べる必要がありますが、ログインが失敗した場合は例外がスローされるようです。これには、関心のある詳細が含まれているはずです。

編集中:

私はそれを正確に行うために書いたこのコードを掘り起こしました。try/catch誤ったログインクレデンシャルを検出するには、下部にビットを配置する必要があります。

# Subject
now = dt.datetime.now().ctime()
subject = 'Change to system on %s' % now

# Body
body = 'Subject: %s,\n' % subject
body += 'On %s, a change to the system was detected. Details follow.\n\n' % now

relevantFiles = list(set([x.file for x in relevantChunks]))
for file in relevantFiles:

    fileChunks = [x for x in relevantChunks if x.file == file]
    for chunk in fileChunks:
        body += '****** Affected file %s. ' % chunk.file
        <some other stuff>

server = smtp.SMTP(args.host) # host = smtp.gmail.com:<port> look this bit up
server.starttls()
server.login(args.username, args.password)
server.sendmail(args.sender, args.recipient, body)
server.quit()

余談ですが、なぜこの質問が反対票を投じられたのか、あるいはあなたが間違った質問をしたという事実以外に、反対票を投じるのに何が必要なのか、私にはよくわかりません。

于 2013-01-25T15:17:32.957 に答える
-1

このようなことは禁止されているようなものです。そのため、OAuth や OpenID のようなものが作成されます。この種のことにより、ユーザーはユーザーパスワードを入力せずにログインできます。ので注意してください。

于 2013-01-25T15:02:45.053 に答える