以下のコードは素晴らしいですが、テスト用の電子メールでテストしています。 私の実際のメールアカウントには、受信トレイに少なくとも4kのメールがあります。imaplibに特定の数の電子メールしか表示しない
特定の数の電子メールを表示する方法はありますか?たとえば、最初の20件の最新のメールのみを表示しますか?そして、その
...ボタンがクリックされたとき、それは次の20通の電子メールを表示します言うimport sys
import imaplib
import getpass
import email
import email.header
import datetime
email_address = "[email protected]"
password = "123456"
M = imaplib.IMAP4('mail.company.net')
rows = []
try:
M.login(email_address, password)
print "LOGIN SUCCESS!"
except imaplib.IMAP4.error:
print "LOGIN FAILED!!"
rv, data = M.select("INBOX")
rv, data = M.search(None, "ALL")
for num in data[0].split():
rv, data = M.fetch(num, '(RFC822)')
msg = email.message_from_string(data[0][1])
subj = msg['Subject']
to = msg['To']
frm = msg['From']
body = msg.get_payload()
print subj, " ", to, " ", frm, " ", body
M.close()
M.logout()
後、私は申し訳ありませんが、私は本当にこれを理解しようと苦労しています。私が学んだ最も最近のそれは20の最も最近の電子メールを得ることができるので、私は電子メール
num_msgs = int(data[0])
print 'You have a total of %d messages' % num_msgs
そしてid_list[-1]
場合の総数は、最新の電子メールIDを取得することができます得ることができるということですが、私はid_list[-1] + 19
か何かのような何かを行うことができますか?
私は希望の出力を達成するための助けに本当に感謝します。ありがとうございました。
これまでのところ私は
ids = data[0]
id_list = ids.split()
latest_email_id = id_list[-1] #gets most recent email
for i in latest_email_id:
if i > 21:
rv, data = M.fetch(num, '(RFC822)')
msgrecent = email.message_from_string(data[0][1])
subjs = msgrecent['Subject']
print "only print 20 most recent email"
print subjs
else:
print "none"
どのように私は私が必要とする出力を得るために、これを変更することができますか?私は、次のコードを更新
:
ids = data[0]
id_list = ids.split()
for num in id_list[0:10]:
rv, data = M.fetch(num, '(RFC822)')
msg = email.message_from_string(data[0][1])
subj = msg['Subject']
to = msg['To']
frm = msg['From']
body = msg.get_payload()
print subj
この出力は昇順
first
second
third
fourth
.
.
.
.
tenth
でそう私は-1
を追加考え出し は
最新の更新をありがとう降順で並べ替えるようにします。
ids = data[0]
id_list = ids.split()
for num in id_list[0:10:-1]:
rv, data = M.fetch(num, '(RFC822)')
msg = email.message_from_string(data[0][1])
subj = msg['Subject']
to = msg['To']
frm = msg['From']
body = msg.get_payload()
print subj
しかし、私がしたとき、私は何の出力も得られませんでした。
どのように私はこれを修正することができますか? ありがとう
おそらく方法があります。何か試しましたか? – Julien
グーグル上での検索とimaplibライブラリの再読み込み以外のものはまだありません – hocuspocus31
どこかでuidのリストを保存し、最後の20個だけを見てみましょうか? – Max