import ./make-test-python.nix ( { lib, ... }: { name = "mailpit"; meta.maintainers = lib.teams.flyingcircus.members; nodes.machine = { pkgs, ... }: { services.mailpit.enable = true; environment.systemPackages = with pkgs; [ swaks ]; }; testScript = '' start_all() from json import loads machine.wait_for_unit("mailpit.service") machine.wait_for_open_port(1025) machine.wait_for_open_port(8025) machine.succeed( 'echo "this is the body of the email" | swaks --to root@example.org --body - --server localhost:1025' ) received = loads(machine.succeed("curl http://localhost:8025/api/v1/messages")) assert received['total'] == 1 message = received["messages"][0] assert len(message['To']) == 1 assert message['To'][0]['Address'] == 'root@example.org' assert "this is the body of the email" in message['Snippet'] ''; } )