1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
|
#!/bin/sh
#
# Test the setting of the envelope-from address for SMTP
#
# Note here we use multiple From: addresses for some tests so we pick up
# some cases skipped in other tests.
#
set -e
if test -z "${MH_OBJ_DIR}"; then
srcdir=`dirname "$0"`/../..
MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR
fi
. "${srcdir}/test/post/test-post-common.sh"
#
# Sender
#
cat > "${MH_TEST_DIR}/Mail/draft" <<EOF
From: Mr Nobody One <nobody1@example.com>,
Mr Nobody Two <nobody2@example.com>
Sender: Mr Nobody Three <nobody3@example.com>
To: Somebody Else <somebody@example.com>
Subject: Sender test
This is a test of the Sender header.
EOF
cat > "${testname}.0.expected" <<EOF
EHLO nosuchhost.example.com
MAIL FROM:<nobody3@example.com>
RCPT TO:<somebody@example.com>
DATA
From: Mr Nobody One <nobody1@example.com>,
Mr Nobody Two <nobody2@example.com>
Sender: Mr Nobody Three <nobody3@example.com>
To: Somebody Else <somebody@example.com>
Subject: Sender test
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date:
This is a test of the Sender header.
.
QUIT
EOF
test_post "${testname}.0.actual" "${testname}.0.expected"
#
# Check to see if Envelope-From overrides Sender
#
cat > "${MH_TEST_DIR}/Mail/draft" <<EOF
From: Mr Nobody One <nobody1@example.com>,
Mr Nobody Two <nobody2@example.com>
Sender: Mr Nobody Three <nobody3@example.com>
Envelope-From: Mr Nobody Four <nobody4@example.com>
To: Somebody Else <somebody@example.com>
Subject: Envelope-From test
This is a test of the Envelope-From header.
EOF
cat > "${testname}.1.expected" <<EOF
EHLO nosuchhost.example.com
MAIL FROM:<nobody4@example.com>
RCPT TO:<somebody@example.com>
DATA
From: Mr Nobody One <nobody1@example.com>,
Mr Nobody Two <nobody2@example.com>
Sender: Mr Nobody Three <nobody3@example.com>
To: Somebody Else <somebody@example.com>
Subject: Envelope-From test
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date:
This is a test of the Envelope-From header.
.
QUIT
EOF
test_post "${testname}.1.actual" "${testname}.1.expected"
#
# See if Envelope-From will generate a Sender: header with multiple From:
# addresses
#
cat > "${MH_TEST_DIR}/Mail/draft" <<EOF
From: Mr Nobody One <nobody1@example.com>,
Mr Nobody Two <nobody2@example.com>
Envelope-From: Mr Nobody Four <nobody4@example.com>
To: Somebody Else <somebody@example.com>
Subject: Envelope-From and Sender test
This is a test of the Envelope-From and Sender headers.
EOF
cat > "${testname}.2.expected" <<EOF
EHLO nosuchhost.example.com
MAIL FROM:<nobody4@example.com>
RCPT TO:<somebody@example.com>
DATA
From: Mr Nobody One <nobody1@example.com>,
Mr Nobody Two <nobody2@example.com>
To: Somebody Else <somebody@example.com>
Subject: Envelope-From and Sender test
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date:
Sender: nobody4@example.com
This is a test of the Envelope-From and Sender headers.
.
QUIT
EOF
test_post "${testname}.2.actual" "${testname}.2.expected"
#
# And make sure we do NOT get a Sender with only one From:
#
cat > "${MH_TEST_DIR}/Mail/draft" <<EOF
From: Mr Nobody One <nobody1@example.com>
Envelope-From: Mr Nobody Five <nobody5@example.com>
To: Somebody Else <somebody@example.com>
Subject: Solo Envelope-From test
This is a solo test of the Envelope-From header.
EOF
cat > "${testname}.3.expected" <<EOF
EHLO nosuchhost.example.com
MAIL FROM:<nobody5@example.com>
RCPT TO:<somebody@example.com>
DATA
From: Mr Nobody One <nobody1@example.com>
To: Somebody Else <somebody@example.com>
Subject: Solo Envelope-From test
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date:
This is a solo test of the Envelope-From header.
.
QUIT
EOF
test_post "${testname}.3.actual" "${testname}.3.expected"
#
# Make sure blank Envelope-From does what we expect it to
#
cat > "${MH_TEST_DIR}/Mail/draft" <<EOF
From: Mr Nobody One <nobody1@example.com>
Envelope-From:
To: Somebody Else <somebody@example.com>
Subject: Blank Envelope-From test
This is a blank test of the Envelope-From header.
EOF
cat > "${testname}.4.expected" <<EOF
EHLO nosuchhost.example.com
MAIL FROM:<>
RCPT TO:<somebody@example.com>
DATA
From: Mr Nobody One <nobody1@example.com>
To: Somebody Else <somebody@example.com>
Subject: Blank Envelope-From test
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date:
This is a blank test of the Envelope-From header.
.
QUIT
EOF
test_post "${testname}.4.actual" "${testname}.4.expected"
exit ${failed:-0}
|