dotfiles/modules/profiles/personal_mail.nix

73 lines
1.9 KiB
Nix
Raw Normal View History

2024-12-21 12:22:58 +01:00
{ lib
, config
, pkgs
, ...
}:
with lib;
let
cfg = config.my.profiles.personal;
filterHtml = pkgs.writeScript "filter_html" ''
${lib.getExe pkgs.w3m} -T text/html \
-cols $(tput cols) \
-dump \
-o display_image=false \
-o display_link_number=true "$@"
'';
in
{
options.my.profiles.personal.mail = mkEnableOption "personal email";
config = mkIf cfg.mail {
home-manager.users.moritz = {
home.packages = with pkgs; [
w3m
];
programs.aerc = {
enable = true;
extraConfig = {
general.unsafe-accounts-conf = true;
viewer = {
alternatives = "text/plain,text/html";
header-layout = "From,To,Cc,Bcc,Date,Subject";
};
filters = {
"text/html" = "${filterHtml}";
"text/plain" = "colorize";
"text/calendar" = "calendar";
"message/delivery-status" = "colorize";
"message/rfc822" = "colorize";
".headers" = "colorize";
};
};
};
services.mbsync.enable = true;
services.imapnotify.enable = true;
programs.mbsync.enable = true;
accounts.email.accounts.personal = {
imapnotify.enable = true;
imapnotify.boxes = [ "Inbox" ];
imapnotify.onNotify = "systemctl start --user mbsync.service";
primary = true;
address = "mail@moritzboeh.me";
userName = "mail@moritzboeh.me";
aerc.enable = true;
gpg.signByDefault = true;
gpg.key = "0xE4F362A3F5C338A0";
imap.host = "mail.your-server.de";
smtp.host = "mail.your-server.de";
realName = "Moritz Böhme";
mbsync.enable = true;
mbsync.create = "both";
passwordCommand = "cat /run/agenix/email";
};
accounts.email.maildirBasePath = "Documents/Mail";
};
age.secrets.email = {
file = ../../secrets/email.age;
owner = "1000";
};
};
}