質問

どのように私は短いPythonスクリプトと私の受信トレイに未読のGmailメッセージの数を確認することができますか?ファイルからパスワードを取得するためのボーナスポイントます。

役に立ちましたか?

解決

import imaplib
obj = imaplib.IMAP4_SSL('imap.gmail.com','993')
obj.login('username','password')
obj.select()
obj.search(None,'UnSeen')

他のヒント

私はあなたが使用することをお勧め GmailのAtomフィード

これは、このような単純な次のとおりです。

import urllib

url = 'https://mail.google.com/mail/feed/atom/'
opener = urllib.FancyURLopener()
f = opener.open(url)
feed = f.read()

あなたは、この素晴らしい記事でフィードの解析機能を使用することができます:<のhref =「http://g33k.wordpress.com/2006/07/31/check-gmail-the-python-way/」のrel = "nofollowをnoreferrer"> Gmailのにの

神託の方法を確認してください
Cletusが示唆したように、

まあ、私は先に行くとimaplibソリューションを綴るつもりです。人々はこのためgmail.pyやAtomを使用する必要性を感じ、なぜ私は表示されません。この種のものは、IMAPがために設計されたものです。それは実際にGmailのHTMLを解析するようGmail.pyは特にひどいです。それはいくつかのもののために必要かもしれないが、メッセージ数を取得することではない!

import imaplib, re
conn = imaplib.IMAP4_SSL("imap.gmail.com", 993)
conn.login(username, password)
unreadCount = re.search("UNSEEN (\d+)", conn.status("INBOX", "(UNSEEN)")[1][0]).group(1)

正規表現をプリコンパイルすると、わずかに性能を向上させることができる。

Atomフィードから値を読み取るの完全な実装の場合:

import urllib2
import base64
from xml.dom.minidom import parse

def gmail_unread_count(user, password):
    """
        Takes a Gmail user name and password and returns the unread
        messages count as an integer.
    """
    # Build the authentication string
    b64auth = base64.encodestring("%s:%s" % (user, password))
    auth = "Basic " + b64auth

    # Build the request
    req = urllib2.Request("https://mail.google.com/mail/feed/atom/")
    req.add_header("Authorization", auth)
    handle = urllib2.urlopen(req)

    # Build an XML dom tree of the feed
    dom = parse(handle)
    handle.close()

    # Get the "fullcount" xml object
    count_obj = dom.getElementsByTagName("fullcount")[0]
    # get its text and convert it to an integer
    return int(count_obj.firstChild.wholeText)

まあそれは、コードスニペットはありませんが、私は imaplib と使用して想像< href = "http://mail.google.com/support/bin/answer.py?hl=en&answer=75725" のrelは= "noreferrer"> GmailのIMAPの命令はあなたが道のほとんどを得る。

あなたは、あなたがフィードを使用する必要があります(手動またはgmail.pyでこれを行う)に記録されたらます。

これは次の場所にあります。 http://mail.google.com/mail/feed/atomする

これは、Googleがそれをしない方法です。ここでは彼らのJS Chrome拡張機能へのリンクは次のとおりです。 http://dev.chromium.org/developers/design-文書/拡張/サンプル/ gmail.zipする

あなたは、このようなXMLを解析することができるようになります。

<?xml version="1.0" encoding="UTF-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#">
<title>Gmail - Inbox for yourmail@gmail.com</title>
<tagline>New messages in your Gmail Inbox</tagline>
<fullcount>142</fullcount>

Gmail.pyする

を使用します
file = open("filename","r")
usr = file.readline()
pwd = file.readline()
gmail = GmailClient()
gmail.login(usr, pwd)
unreadMail = gmail.get_inbox_conversations(is_unread=True)
print unreadMail

ログイン名とパスワードは別々の行にあると仮定すると、テキストファイルからログイン情報を取得します。

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