git » chasquid » smarthost » tree

[smarthost] / test / t-01-simple_local / run.sh

#!/bin/bash

set -e
. $(dirname ${0})/../util/lib.sh

init
check_hostaliases

mkdir -p .logs

if ! chasquid --version > /dev/null; then
	fail "chasquid --version failed"
fi

# This should fail, as it has no certificates.
rm -f config/certs/testserver/*.pem
if chasquid -v=2 --logfile=.logs/chasquid.log --config_dir=config; then
	fail "chasquid should not start without certificates"
fi

generate_certs_for testserver
add_user user@testserver secretpassword
add_user someone@testserver secretpassword

chasquid -v=2 --logfile=.logs/chasquid.log --config_dir=config &
wait_until_ready 1025

run_msmtp someone@testserver < content

wait_for_file .mail/someone@testserver

mail_diff content .mail/someone@testserver

# At least for now, we allow AUTH over the SMTP port to avoid unnecessary
# complexity, so we expect it to work.
if ! run_msmtp -a smtpport someone@testserver < content 2> /dev/null; then
	fail "failed auth on the SMTP port"
fi

# Check deliver over the submission-over-TLS port.
if ! run_msmtp -a subm_tls someone@testserver < content 2> /dev/null; then
	fail "failed submission over TLS"
fi

if run_msmtp nobody@testserver < content 2> /dev/null; then
	fail "successfuly sent an email to a non-existent user"
fi

if run_msmtp -a baduser someone@testserver < content 2> /dev/null; then
	fail "successfully sent an email with a bad password"
fi

if run_msmtp -a badpasswd someone@testserver < content 2> /dev/null; then
	fail "successfully sent an email with a bad password"
fi

success