From: alex Date: Sun, 7 Sep 2025 08:43:59 +0000 (+0200) Subject: Migrate to Migadu X-Git-Url: https://xn--ix-yja.es/gitweb/?a=commitdiff_plain;h=2a907585e053a56997f013cdf25eaf86f8931a5c;p=alex.git Migrate to Migadu --- diff --git a/scripts/p7s/mail/__init__.py b/scripts/p7s/mail/__init__.py index 43c72fd..c28c900 100644 --- a/scripts/p7s/mail/__init__.py +++ b/scripts/p7s/mail/__init__.py @@ -8,21 +8,21 @@ from p7s.mail import mbsync from p7s import systemd -MOM = "5c4d9e3b-121d-45f5-bab6-03b42d291326" -GMAIL = "f9bba940-769d-430a-82f4-5da10990e8fd" - +MOM = "5c4d9e3b-121d-45f5-bab6-03b42d291326" +GMAIL = "f9bba940-769d-430a-82f4-5da10990e8fd" +MIGADU = "e6157d00-5ab4-45da-947a-99667a52b828" +DREAMHOST = "196b080f-1cda-4c43-8df8-d5b9ed5bb07b" def setup_mbsync(): - gmail = bitwarden.get_item("https://vaultwarden.pdp7.net", "alex@corcoles.net", GMAIL)["login"] - yahoo = bitwarden.get_item("https://vaultwarden.pdp7.net", "alex@corcoles.net", MOM)["login"] + migadu = bitwarden.get_item("https://vaultwarden.pdp7.net", "alex@corcoles.net", MIGADU)["login"] + (pathlib.Path.home() / (".mbsyncrc")).write_text( - mbsync.mbsync_gmail(gmail["username"], gmail["password"], "~/Mail") + - "\n" + - mbsync.mbsync_yahoo(yahoo["username"], yahoo["password"], "~/Mail") + "\n".join([ + mbsync.mbsync_migadu(migadu["username"], migadu["password"], "~/Mail"), + ]) ) - for username in [gmail["username"], yahoo["username"]]: - (pathlib.Path.home() / "Mail" / username).mkdir(exist_ok=True, parents=True) + (pathlib.Path.home() / "Mail" / migadu["username"]).mkdir(exist_ok=True, parents=True) systemd.create_user_unit("mbsync.service", _(""" [Unit] @@ -54,9 +54,19 @@ def setup_mbsync(): def setup_imapfilter(): create_forward( - "mom_to_gmail", + "mom_to_migadu", _bitwarden_item_to_imapfilterserver("mom", bitwarden.get_item("https://vaultwarden.pdp7.net", "alex@corcoles.net", MOM)), + _bitwarden_item_to_imapfilterserver("migadu", bitwarden.get_item("https://vaultwarden.pdp7.net", "alex@corcoles.net", MIGADU)), + ) + create_forward( + "dreamhost_to_migadu", + _bitwarden_item_to_imapfilterserver("dreamhost", bitwarden.get_item("https://vaultwarden.pdp7.net", "alex@corcoles.net", DREAMHOST)), + _bitwarden_item_to_imapfilterserver("migadu", bitwarden.get_item("https://vaultwarden.pdp7.net", "alex@corcoles.net", MIGADU)), + ) + create_forward( + "gmail_to_migadu", _bitwarden_item_to_imapfilterserver("gmail", bitwarden.get_item("https://vaultwarden.pdp7.net", "alex@corcoles.net", GMAIL)), + _bitwarden_item_to_imapfilterserver("migadu", bitwarden.get_item("https://vaultwarden.pdp7.net", "alex@corcoles.net", MIGADU)), ) diff --git a/scripts/p7s/mail/mbsync.py b/scripts/p7s/mail/mbsync.py index bd27893..50c1e3f 100644 --- a/scripts/p7s/mail/mbsync.py +++ b/scripts/p7s/mail/mbsync.py @@ -55,3 +55,30 @@ def mbsync_yahoo(login, password, store_path): Expunge Both SyncState * """).lstrip() + + +def mbsync_migadu(login, password, store_path): + return textwrap.dedent(f""" + IMAPAccount {login} + Host imap.migadu.com + SSLType IMAPS + User {login} + Pass {password} + PipelineDepth 5 + + IMAPStore {login}-remote + Account {login} + + MaildirStore {login}-local + SubFolders Verbatim + Path {store_path}/{login}/ + Inbox {store_path}/{login}/Inbox + + Channel {login} + Far :{login}-remote: + Near :{login}-local: + Patterns * + Create Both + Expunge Both + SyncState * + """).lstrip()