summaryrefslogtreecommitdiff
path: root/profiles/email/server.nix
diff options
context:
space:
mode:
authorMike Vink <ivi@vinkies.net>2023-10-22 12:18:05 +0200
committerMike Vink <ivi@vinkies.net>2023-10-22 12:18:05 +0200
commitb52eb0ddce7c8a476351f38fedfea92e83b23f18 (patch)
tree87b01873a5ba33b0326b9ee63e043fd97723062e /profiles/email/server.nix
parentbc2c557650e076aaf6d47bbc99bc67f99b26aa27 (diff)
fix emails to gmail
Diffstat (limited to 'profiles/email/server.nix')
-rw-r--r--profiles/email/server.nix59
1 files changed, 59 insertions, 0 deletions
diff --git a/profiles/email/server.nix b/profiles/email/server.nix
new file mode 100644
index 0000000..9a5e16c
--- /dev/null
+++ b/profiles/email/server.nix
@@ -0,0 +1,59 @@
+{
+ inputs,
+ config,
+ pkgs,
+ lib,
+ ...
+}: with lib; {
+ hm = {
+ accounts.email = {
+ accounts = {
+ ${ivi.username} = {
+ realName = "${ivi.realName}";
+ userName = "${ivi.email}";
+ address = "${ivi.email}";
+ passwordCommand = ["${pkgs.pass}/bin/pass" "personal/mailserver"];
+ imap = { host = "${ivi.domain}"; port = 993; tls = { enable = true; }; };
+ smtp = { host = "${ivi.domain}"; port = 587; tls = { enable = true; useStartTls = true; }; };
+ msmtp = {
+ enable = true;
+ };
+ neomutt = {
+ enable = true;
+ sendMailCommand = "msmtp -a ${ivi.username}";
+ mailboxName = "=== ${ivi.username} ===";
+ extraConfig = ''
+ set spoolfile='Inbox'
+ unvirtual-mailboxes *
+ '';
+ };
+ mbsync = {
+ enable = true;
+ create = "both"; remove = "both"; expunge = "both";
+ groups = {
+ ${ivi.username} = {
+ channels = {
+ All = { patterns = ["*"]; extraConfig = { Create = "Both"; Expunge = "Both"; Remove = "Both"; }; };
+ };
+ };
+ };
+ };
+ notmuch = {
+ enable = true;
+ neomutt = {
+ enable = true;
+ virtualMailboxes = [
+ { name = "Inbox"; query = "folder:/${ivi.username}/ tag:inbox"; }
+ { name = "Sent"; query = "folder:/${ivi.username}/ tag:sent"; }
+ { name = "Archive"; query = "folder:/${ivi.username}/ tag:archive"; }
+ { name = "Drafts"; query = "folder:/${ivi.username}/ tag:drafts"; }
+ { name = "Junk"; query = "folder:/${ivi.username}/ tag:spam"; }
+ { name = "Trash"; query = "folder:/${ivi.username}/ tag:trash"; }
+ ];
+ };
+ };
+ };
+ };
+ };
+ };
+}