No description
| config.yml.example | ||
| flake.lock | ||
| flake.nix | ||
| mail-quota-warning.py | ||
| module.nix | ||
| README.md | ||
| vm-mail-quota-warning.py | ||
mail-quota-warning
Small script to check a configured list of IMAP accounts for mailbox quota and send a warning mail in case a specific threashold is exceeded.
Installation
NixOS
Add the module to your flake.nix:
{
inputs = {
mail-quota-warning.url = "git+https://git.project-insanity.org/onny/mail-quota-warning.git";
[...]
};
outputs = {self, nixpkgs, ...}@inputs: {
nixosConfigurations.tuxzentrale = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs.inputs = inputs;
modules = [
inputs.mail-quota-warning.nixosModule
({ pkgs, ... }:{
nixpkgs.overlays = [
inputs.mail-quota-warning.overlay
];
})
./configuration.nix
];
};
};
}
Add this to your configuration.nix file
environment.etc."mail-quota-warning-secrets.yml".text = ''
accounts:
- name: Sales
imap_server: mail.example.com
imap_port: 993
username: sales@example.com
password: secret
- name: Support
imap_server: mail.example.com
imap_port: 993
username: support@example.com
password: secret
mail:
smtp_server: mail.example.com
smtp_port: 587
smtp_username: monitoring@example.com
smtp_password: secret
from_address: monitoring@example.com
recipients:
- admin1@example.com
- admin2@example.com
'';
services.mail-quota-warning = {
enable = true;
settings = {
CHECK_INTERVAL_DAYS = 7;
QUOTA_WARNING_THRESHOLD_PERCENT = 80;
};
secretFile = "/etc/mail-quota-warning-secrets.yml";
};
Replace setting variables according to your setup.
From source
cd mail-quota-warning
nix develop
export CHECK_INTERVAL_DAYS=7
export QUOTA_WARNING_THRESHOLD_PERCENT=80
nix run