mirror of
https://github.com/JulienMalka/snowfield.git
synced 2025-03-25 21:30:52 +01:00
163 lines
3.9 KiB
Nix
163 lines
3.9 KiB
Nix
{
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
cfg = config.luj.emails;
|
|
in
|
|
with lib;
|
|
{
|
|
options.luj.emails = {
|
|
enable = mkEnableOption "enable mail management";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
age.secrets.work-mail-pw = {
|
|
file = ../../secrets/work-mail-pw.age;
|
|
};
|
|
|
|
age.secrets.dgnum-mail-pw = {
|
|
file = ../../secrets/dgnum-mail-pw.age;
|
|
};
|
|
|
|
age.secrets.telecom-mail-pw = {
|
|
file = ../../secrets/telecom-mail-pw.age;
|
|
};
|
|
|
|
age.secrets.ens-mail-pw = {
|
|
file = ../../secrets/ens-mail-pw.age;
|
|
};
|
|
|
|
programs.mbsync = {
|
|
enable = lib.mkDefault true;
|
|
package = pkgs.unstable.isync;
|
|
};
|
|
|
|
programs.msmtp.enable = true;
|
|
accounts.email = {
|
|
accounts.ens = {
|
|
notmuch.enable = true;
|
|
folders.inbox = "INBOX";
|
|
address = "julien.malka@ens.fr";
|
|
imap.host = "clipper.ens.fr";
|
|
mbsync = {
|
|
enable = true;
|
|
create = "maildir";
|
|
extraConfig.channel = {
|
|
"CopyArrivalDate" = "yes";
|
|
};
|
|
};
|
|
msmtp.enable = true;
|
|
primary = true;
|
|
realName = "Julien Malka";
|
|
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.ens-mail-pw.path}";
|
|
smtp = {
|
|
host = "clipper.ens.fr";
|
|
};
|
|
userName = "jmalka";
|
|
};
|
|
accounts.work = {
|
|
notmuch.enable = true;
|
|
folders.inbox = "INBOX";
|
|
address = "julien@malka.sh";
|
|
imap.host = "mail.luj.fr";
|
|
mbsync = {
|
|
enable = true;
|
|
create = "maildir";
|
|
extraConfig.channel = {
|
|
"CopyArrivalDate" = "yes";
|
|
};
|
|
};
|
|
msmtp.enable = true;
|
|
primary = false;
|
|
realName = "Julien Malka";
|
|
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.work-mail-pw.path}";
|
|
smtp = {
|
|
host = "mail.luj.fr";
|
|
};
|
|
userName = "malka";
|
|
};
|
|
|
|
accounts.telecom = {
|
|
notmuch.enable = true;
|
|
folders.inbox = "INBOX";
|
|
address = "julien.malka@telecom-paris.fr";
|
|
imap.host = "z.imt.fr";
|
|
mbsync = {
|
|
enable = true;
|
|
create = "maildir";
|
|
extraConfig.channel = {
|
|
"CopyArrivalDate" = "yes";
|
|
};
|
|
};
|
|
msmtp.enable = true;
|
|
primary = false;
|
|
realName = "Julien Malka";
|
|
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.telecom-mail-pw.path}";
|
|
smtp = {
|
|
host = "z.imt.fr";
|
|
};
|
|
userName = "julien.malka@telecom-paris.fr";
|
|
};
|
|
|
|
accounts.dgnum = {
|
|
notmuch.enable = true;
|
|
folders.inbox = "INBOX";
|
|
address = "luj@dgnum.eu";
|
|
imap.host = "kurisu.lahfa.xyz";
|
|
mbsync = {
|
|
enable = true;
|
|
create = "maildir";
|
|
extraConfig.channel = {
|
|
"CopyArrivalDate" = "yes";
|
|
};
|
|
};
|
|
msmtp.enable = true;
|
|
primary = false;
|
|
realName = "Julien Malka";
|
|
passwordCommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.dgnum-mail-pw.path}";
|
|
smtp = {
|
|
host = "kurisu.lahfa.xyz";
|
|
};
|
|
userName = "luj@dgnum.eu";
|
|
};
|
|
|
|
};
|
|
|
|
services.mbsync = {
|
|
enable = lib.mkDefault true;
|
|
frequency = "minutely";
|
|
package = pkgs.unstable.isync;
|
|
};
|
|
|
|
services.mbsync.postExec = lib.mkDefault "${pkgs.notmuch}/bin/notmuch new";
|
|
|
|
programs.notmuch = {
|
|
enable = lib.mkDefault true;
|
|
new.tags = [ "new" ];
|
|
hooks.postNew = lib.mkDefault ''
|
|
${pkgs.afew}/bin/afew --tag --new
|
|
'';
|
|
};
|
|
|
|
programs.afew = {
|
|
enable = true;
|
|
extraConfig = ''
|
|
[FolderNameFilter]
|
|
maildir_separator = /
|
|
folder_lowercases = true
|
|
folder_blacklist = Sent
|
|
[ArchiveSentMailsFilter]
|
|
sent_tag = sent
|
|
[Filter.1]
|
|
query = tag:archive
|
|
tags = -new
|
|
[InboxFilter]
|
|
'';
|
|
};
|
|
|
|
};
|
|
}
|