さて、私のコードの奇妙な振る舞いに気づき、問題の根底にたどり着こうとしました。imapライブラリを使用してメールをチェックしようとすると、新着メールがあるかどうかを確認するために毎回ログインする必要がありますか?例えば
#get_mail function.
def get_mail():
conn = imaplib.IMAP4_SSL('imap.gmail.com')
conn.login(gmail_user_id,gmail_user_pass)
conn.select('inbox')
conn.search(None,'(Inbox)')
return something here
代わりに、次のようなことを行うことができます。
#create 'conn' as a global var
conn = imaplib.IMAP4_SSL('imap.gmail.com')
conn.login(gmail_user_id,gmail_user_pass)
conn.select('inbox')
#get_mail function
def get_mail():
conn.search(None,'(Inbox)')
return something here
問題は、上記の2番目のスニペットで、connが作成された後に新しいメールが送信された場合、それがフェッチされていないことです。では、関数を実行するたびに再ログインする必要がありますか?