diff options
Diffstat (limited to 'home/mail')
-rw-r--r-- | home/mail/accounts/default.nix | 71 | ||||
-rw-r--r-- | home/mail/default.nix | 11 |
2 files changed, 82 insertions, 0 deletions
diff --git a/home/mail/accounts/default.nix b/home/mail/accounts/default.nix new file mode 100644 index 0000000..1bc1c37 --- /dev/null +++ b/home/mail/accounts/default.nix @@ -0,0 +1,71 @@ +{ config, lib, pkgs, ... }: +let cfg = config.my.home.mail; +in { + config = lib.mkIf cfg.enable { + accounts.email = { + accounts = { + Fastmail = rec { + primary = true; + address = "franck@fcuny.net"; + userName = address; + realName = "Franck Cuny"; + aliases = [ "franck.cuny@gmail.com" ]; + passwordCommand = "pass email/imap.fastmail.com"; + imap.host = "imap.fastmail.com"; + mbsync = { + enable = true; + create = "maildir"; + expunge = "both"; + extraConfig.channel.CopyArrivalDate = "yes"; + }; + notmuch.enable = true; + }; + }; + }; + + programs.mbsync.enable = true; + + programs.afew = { + enable = true; + extraConfig = '' + [SpamFilter] + [KillThreadsFilter] + [ArchiveSentMailsFilter] + [InboxFilter] + ''; + }; + + programs.notmuch = { + enable = true; + maildir.synchronizeFlags = true; + new.tags = [ "unread" "new" ]; + new.ignore = [ "Trash" ]; + search.excludeTags = [ "spam" "deleted" ]; + hooks = { + postNew = "${config.home.profileDirectory}/bin/afew -v --tag --new"; + }; + }; + + systemd.user.services.mbsync = { + Unit = { Description = "mbsync synchronization"; }; + Service = { + Type = "oneshot"; + Environment = [ + "PASSWORD_STORE_DIR=${config.programs.password-store.settings.PASSWORD_STORE_DIR}" + "NOTMUCH_CONFIG=${config.xdg.configHome}/notmuch/notmuchrc" + ]; + ExecStart = "${pkgs.isync}/bin/mbsync -a"; + ExecStartPost = "${pkgs.notmuch}/bin/notmuch new --quiet"; + }; + }; + + systemd.user.timers.mbsync = { + Unit = { Description = "mbsync synchronization"; }; + Timer = { + OnBootSec = "30"; + OnUnitActiveSec = "5m"; + }; + Install = { WantedBy = [ "timers.target" ]; }; + }; + }; +} diff --git a/home/mail/default.nix b/home/mail/default.nix new file mode 100644 index 0000000..4f36e87 --- /dev/null +++ b/home/mail/default.nix @@ -0,0 +1,11 @@ +{ config, lib, ... }: +let + cfg = config.my.home.mail; + mkRelatedOption = desc: lib.mkEnableOption desc // { default = cfg.enable; }; +in { + imports = [ ./accounts ]; + options.my.home.mail = with lib; { + enable = mkEnableOption "email configuration"; + }; + config = { accounts.email = { maildirBasePath = ".mail"; }; }; +} |