mirror of
https://gitlab.com/simple-nixos-mailserver/nixos-mailserver.git
synced 2024-12-28 03:50:34 +05:00
Add send-only test
In the intern test, we send a mail to a send-only account and check the reject message is correcly returned.
This commit is contained in:
parent
41219cc690
commit
abe3c4aedc
@ -16,6 +16,24 @@
|
|||||||
|
|
||||||
{ pkgs ? import <nixpkgs> {}}:
|
{ pkgs ? import <nixpkgs> {}}:
|
||||||
|
|
||||||
|
let
|
||||||
|
sendMail = pkgs.writeTextFile {
|
||||||
|
"name" = "send-mail-to-send-only-account";
|
||||||
|
"text" = ''
|
||||||
|
EHLO mail.example.com
|
||||||
|
MAIL FROM: none@example.com
|
||||||
|
RCPT TO: send-only@example.com
|
||||||
|
QUIT
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
hashPassword = password: pkgs.runCommand
|
||||||
|
"password-${password}-hashed"
|
||||||
|
{ buildInputs = [ pkgs.mkpasswd ]; } ''
|
||||||
|
mkpasswd -m sha-512 ${password} > $out
|
||||||
|
'';
|
||||||
|
|
||||||
|
in
|
||||||
import (pkgs.path + "/nixos/tests/make-test.nix") {
|
import (pkgs.path + "/nixos/tests/make-test.nix") {
|
||||||
|
|
||||||
machine =
|
machine =
|
||||||
@ -35,6 +53,10 @@ import (pkgs.path + "/nixos/tests/make-test.nix") {
|
|||||||
"user1@example.com" = {
|
"user1@example.com" = {
|
||||||
hashedPassword = "$6$/z4n8AQl6K$kiOkBTWlZfBd7PvF5GsJ8PmPgdZsFGN1jPGZufxxr60PoR0oUsrvzm2oQiflyz5ir9fFJ.d/zKm/NgLXNUsNX/";
|
hashedPassword = "$6$/z4n8AQl6K$kiOkBTWlZfBd7PvF5GsJ8PmPgdZsFGN1jPGZufxxr60PoR0oUsrvzm2oQiflyz5ir9fFJ.d/zKm/NgLXNUsNX/";
|
||||||
};
|
};
|
||||||
|
"send-only@example.com" = {
|
||||||
|
hashedPasswordFile = hashPassword "send-only";
|
||||||
|
sendOnly = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
vmailGroupName = "vmail";
|
vmailGroupName = "vmail";
|
||||||
@ -51,5 +73,11 @@ import (pkgs.path + "/nixos/tests/make-test.nix") {
|
|||||||
$machine->succeed("getent group vmail | grep 5000");
|
$machine->succeed("getent group vmail | grep 5000");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
subtest "mail to send only accounts is rejected", sub {
|
||||||
|
$machine->waitForOpenPort(25);
|
||||||
|
# TODO put this blocking into the systemd units?
|
||||||
|
$machine->waitUntilSucceeds("timeout 1 ${pkgs.netcat}/bin/nc -U /run/rspamd/rspamd-milter.sock < /dev/null; [ \$? -eq 124 ]");
|
||||||
|
$machine->succeed("cat ${sendMail} | ${pkgs.netcat-gnu}/bin/nc localhost 25 | grep -q 'This account cannot receive emails'" );
|
||||||
|
};
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user