私はOfflineimapを使ってEメールを整理していますが、仕事のアカウントを使用するにはOAuth2認証を使用する必要があります。
リフレッシュトークンが正常に取得されたので、oauth2_refresh_token
それに応じて変数を設定するとオフラインimapが機能します。ところで、暗号化されたリフレッシュトークンを保存したいと思います(私はunix passを使用してgpg暗号化ファイルとして保存します)。
oauth2_refresh_token_eval
パスまたはそのgpgファイルからリフレッシュトークンを読み取るようにPythonコードを設定することはできません。おそらくPythonの知識が不足しているからです。私は次のコードを試しましたremotepasseval
(後者の場合はうまくいきます)。
def get_pass(account):
return check_output("pass email/" + account, shell=True).splitlines()[0]
ただし、次のエラーが発生します。
TypeError: a bytes-like object is required, not 'str'
実際、オフラインimaprcテンプレートは、ここで戻り値がoauth2_refresh_token_eval
「バイトでなければならない」(それが何を意味するか)を指定します。
この状況で使用する正しいコードは何ですか?
答え1
これは私にとって効果的です。
def get_token(account):
return check_output("pass " + account, shell=True).decode().splitlines()[0]