mirror of
https://gitlab.com/simple-nixos-mailserver/nixos-mailserver.git
synced 2024-12-27 23:46:43 +01:00
Merge branch 'master' of github.com:r-raymond/nixos-mailserver
This commit is contained in:
commit
129e36c5e6
3 changed files with 47 additions and 6 deletions
16
README.md
16
README.md
|
@ -5,7 +5,7 @@
|
|||
|
||||
## Stable Releases
|
||||
|
||||
* [SNM v2.0.2](https://github.com/r-raymond/nixos-mailserver/releases/v2.0.2)
|
||||
* [SNM v2.0.4](https://github.com/r-raymond/nixos-mailserver/releases/v2.0.4)
|
||||
|
||||
[Latest Release (Candidate)](https://github.com/r-raymond/nixos-mailserver/releases/latest)
|
||||
|
||||
|
@ -46,11 +46,12 @@ D9FE 4119 F082 6F15 93BD BD36 6162 DBA5 635E A16A
|
|||
* Sieves
|
||||
- [x] A simple standard script that moves spam
|
||||
- [x] Allow user defined sieve scripts
|
||||
* User Aliases
|
||||
- [x] Regular aliases
|
||||
- [x] Catch all aliases
|
||||
|
||||
### In the future
|
||||
|
||||
* User Aliases
|
||||
- [ ] More complete alias support (Differentiate between forwarding addresses and sending aliases)
|
||||
* DKIM Signing
|
||||
- [ ] Allow a per domain selector
|
||||
|
||||
|
@ -123,7 +124,7 @@ common ones.
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
(builtins.fetchTarball "https://github.com/r-raymond/nixos-mailserver/archive/v2.0.2.tar.gz")
|
||||
(builtins.fetchTarball "https://github.com/r-raymond/nixos-mailserver/archive/v2.0.4.tar.gz")
|
||||
];
|
||||
|
||||
mailserver = {
|
||||
|
@ -141,6 +142,13 @@ common ones.
|
|||
"postmaster@example.com"
|
||||
"postmaster@example2.com"
|
||||
];
|
||||
|
||||
# Make this user the catchAll address for domains example.com and
|
||||
# example2.com
|
||||
catchAll = [
|
||||
"example.com"
|
||||
"example2.com"
|
||||
];
|
||||
};
|
||||
|
||||
"user2@example.com" = { ... };
|
||||
|
|
|
@ -26,7 +26,7 @@ let
|
|||
valiases_postfix = lib.flatten (lib.mapAttrsToList
|
||||
(name: value:
|
||||
let to = name;
|
||||
in map (from: "${from} ${to}") value.aliases)
|
||||
in map (from: "${from} ${to}") (value.aliases ++ lib.singleton name))
|
||||
cfg.loginAccounts);
|
||||
|
||||
# catchAllPostfix :: [ String ]
|
||||
|
|
|
@ -48,7 +48,9 @@ import <nixpkgs/nixos/tests/make-test.nix> {
|
|||
};
|
||||
client = { config, pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [ fetchmail msmtp procmail ];
|
||||
environment.systemPackages = with pkgs; [
|
||||
fetchmail msmtp procmail findutils
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -88,6 +90,13 @@ import <nixpkgs/nixos/tests/make-test.nix> {
|
|||
from chuck\@example.com
|
||||
user user2\@example.com
|
||||
password user2
|
||||
|
||||
account test4
|
||||
host SERVER
|
||||
port 587
|
||||
from postmaster\@example.com
|
||||
user user1\@example.com
|
||||
password user1
|
||||
'';
|
||||
email1 =
|
||||
''
|
||||
|
@ -117,6 +126,20 @@ import <nixpkgs/nixos/tests/make-test.nix> {
|
|||
|
||||
XOXO User1
|
||||
'';
|
||||
email3 =
|
||||
''
|
||||
From: Postmaster <postmaster@example.com>
|
||||
To: Chuck <chuck@example.com>
|
||||
Cc:
|
||||
Bcc:
|
||||
Subject: This is a test Email from postmaster\@example.com to chuck
|
||||
Reply-To:
|
||||
|
||||
Hello Chuck,
|
||||
|
||||
I think I may have misconfigured the mail server
|
||||
XOXO Postmaster
|
||||
'';
|
||||
in
|
||||
''
|
||||
startAll;
|
||||
|
@ -196,6 +219,16 @@ import <nixpkgs/nixos/tests/make-test.nix> {
|
|||
$client->succeed("sleep 5");
|
||||
# fetchmail returns EXIT_CODE 0 when it retrieves mail
|
||||
$client->succeed("fetchmail -v");
|
||||
|
||||
$client->succeed("rm ~/mail/*");
|
||||
$client->succeed("rm mail.txt");
|
||||
$client->succeed("echo '${email2}' > mail.txt");
|
||||
# send email from user1 to chuck
|
||||
$client->succeed("msmtp -a test4 --tls=on --tls-certcheck=off --auth=on chuck\@example.com < mail.txt >&2");
|
||||
$client->succeed("sleep 5");
|
||||
# fetchmail returns EXIT_CODE 1 when no new mail
|
||||
# if this succeeds, it means that user1 recieved the mail that was intended for chuck.
|
||||
$client->fail("fetchmail -v");
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue