1
0
mirror of https://blitiri.com.ar/repos/chasquid synced 2026-01-05 17:37:03 +00:00

test: Add a test for DSN and null address deliveries

This patch adds a test for delivery status notifications and null address
deliveries, that check that chasquid can both receive and send DSNs.

To do this, we extend the mail_diff utility to support wildcards in the
comparisons, to skip over variable parts of the messages (like dates).
This commit is contained in:
Alberto Bertogli
2016-09-25 20:05:21 +01:00
parent 1d3675a133
commit 469cbd5d76
9 changed files with 149 additions and 1 deletions

View File

@@ -0,0 +1,13 @@
hostname: "testserver"
smtp_address: ":1025"
submission_address: ":1587"
monitoring_address: ":1099"
mail_delivery_agent_bin: "test-mda"
mail_delivery_agent_args: "%to%"
data_dir: "../.data"
suffix_separators: "+-"
drop_characters: "._"

View File

@@ -0,0 +1,3 @@
fail: | false

View File

@@ -0,0 +1,5 @@
From: Mailer daemon <somewhere@horns.com>
Subject: I've come to haunt you
Muahahahaha

View File

@@ -0,0 +1,33 @@
From user@testserver
From: Mail Delivery System <postmaster-dsn@testserver>
To: <user@testserver>
Subject: Mail delivery failed: returning message to sender
Message-ID: *
Date: *
X-Failed-Recipients: fail@testserver,
Auto-Submitted: auto-replied
Delivery to the following recipient(s) failed permanently:
- fail@testserver
----- Technical details -----
- "false" (PIPE) failed with error:
exit status 1
----- Original message -----
Received: from user user@testserver
by *
(envelope from "user@testserver")
on ; *
Date: *
From: Mailer daemon <somewhere@horns.com>
Subject: I've come to haunt you
Muahahahaha

View File

@@ -0,0 +1 @@
testserver localhost

View File

@@ -0,0 +1,13 @@
account default
host testserver
port 1587
tls on
tls_trust_file config/domains/testserver/cert.pem
from user@testserver
auth on
user user@testserver
password secretpassword

29
test/t-05-null_address/run.sh Executable file
View File

@@ -0,0 +1,29 @@
#!/bin/bash
set -e
. $(dirname ${0})/../util/lib.sh
init
generate_certs_for testserver
add_user testserver user secretpassword
mkdir -p .logs
chasquid -v=2 --log_dir=.logs --config_dir=config &
wait_until_ready 1025
# Send mail with an empty address (directly, unauthenticated).
nc localhost 1025 < sendmail > /dev/null
wait_for_file .mail/user@testserver
mail_diff content .mail/user@testserver
rm -f .mail/user@testserver
# Test that we get mail back for a failed delivery
run_msmtp fail@testserver < content
wait_for_file .mail/user@testserver
mail_diff expected_dsr .mail/user@testserver
success

View File

@@ -0,0 +1,13 @@
EHLO
MAIL FROM: <>
RCPT TO: user@testserver
DATA
From: Mailer daemon <somewhere@horns.com>
Subject: I've come to haunt you
Muahahahaha
.
QUIT