From f33ec26dbf0e2c9d9a758f233569584c84b3f5f4 Mon Sep 17 00:00:00 2001 From: Sakooooo <78461130+Sakooooo@users.noreply.github.com> Date: Tue, 24 Sep 2024 09:38:56 +0400 Subject: [PATCH] config/emacs: hopefully add outlook support to offlineimap --- config/emacs/.offlineimap.py | 5 +++++ config/emacs/.offlineimaprc | 24 ++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/config/emacs/.offlineimap.py b/config/emacs/.offlineimap.py index 79f37aae..072f5014 100644 --- a/config/emacs/.offlineimap.py +++ b/config/emacs/.offlineimap.py @@ -160,3 +160,8 @@ class oauth: cmd = check_output("pass " + account, shell=True) return re.search(rb"client_token: (.*)", cmd, flags=0).group(1) + + def get_client_refresh_token(account): + cmd = check_output("pass " + account, shell=True) + + return re.search(rb"client_refresh_token: (.*)", cmd, flags=0).group(1) diff --git a/config/emacs/.offlineimaprc b/config/emacs/.offlineimaprc index 1f9e6117..67a04c65 100644 --- a/config/emacs/.offlineimaprc +++ b/config/emacs/.offlineimaprc @@ -1,6 +1,6 @@ [general] pythonfile = ~/.offlineimap.py -accounts = Proton +accounts = Proton, Outlook [Account Proton] localrepository = Proton-local @@ -17,4 +17,24 @@ remotehost = 127.0.0.1 remoteport = 1143 remoteusereval = get_user("Proton\ Account") remotepasseval = hydroxide("/home/sako/.hydroxide-bridge-pass") -folderfilter = lambda foldername: foldername in [ "All Mail", "Archive", "Drafts", "INBOX", "Sent", "Spam", "Starred", "Trash" ] \ No newline at end of file +folderfilter = lambda foldername: foldername in [ "All Mail", "Archive", "Drafts", "INBOX", "Sent", "Spam", "Starred", "Trash" ] + +[Account Outlook] +localrepostiory = Outlook-local +remoterepository = Outlook-remote + +[Repository Outlook-local] +type = maildir +localfolders = ~/Mail/Outlook + +[Repository Outlook-remote] +type = IMAP +remoteusereval = get_user("Microsoft") +remotehost = outlook.office365.com +remoteport = 993 +auth_mechanisms = XOAUTH2 +oauth2_request_url = https://login.microsoftonline.com/common/oauth2/v2.0/token +oauth2_client_id = 9e5f94bc-e8a4-4e73-b8be-63364c29d753 # thunderbird's token not mine lol +oauth2_client_secret = "" # no need for this lmao +oauth2_refresh_token_eval = oauth.get_client_refresh_token("Microsoft") +oauth2_access_token_eval = oauth.get_client_token("Microsoft") \ No newline at end of file