]> diplodocus.org Git - nmh/blobdiff - test/mhfixmsg/test-mhfixmsg
Fixed condition to enable skipping parameter value tests.
[nmh] / test / mhfixmsg / test-mhfixmsg
index e5df143067875c1a5fcc832af00ac15c8fc74367..ec384f6da18b7f7d98ad1ecaa4c8704045dc6d31 100755 (executable)
@@ -16,9 +16,10 @@ fi
 
 setup_test
 
+check_exit '-eq 1' mhfixmsg -
+
 #### Make sure that html-to-text conversion is what we expect.
-require_locale en_US.utf-8 en_US.utf8
-LC_ALL=en_US.UTF-8; export LC_ALL
+require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8
 
 expected="$MH_TEST_DIR/test-mhfixmsg$$.expected"
 expected_err="$MH_TEST_DIR/test-mhfixmsg$$.expected_err"
@@ -86,15 +87,15 @@ esac
 
 # check that non-MIME messages aren't modified
 # check -outfile
-start_test "that non-MIME messages aren't modified, and -outfile"
+start_test "non-MIME messages aren't modified, and -outfile"
 run_test 'mhfixmsg first -outfile '"$actual" ''
 check "`mhpath first`" "$actual" 'keep first'
 
 
 # check that non-MIME messages with no bodies aren't modified
 # check -outfile
-start_test "that non-MIME messages with no bodies aren't modified, and -outfile"
-cat >`mhpath new` <<EOF
+start_test "non-MIME messages with no bodies aren't modified, and -outfile"
+cat >"`mhpath new`" <<EOF
 From: Test <test@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
@@ -108,7 +109,7 @@ check "`mhpath last`" "$actual"
 
 # check -nofixcte
 start_test "-nofixcte"
-cat >"$MH_TEST_DIR"/Mail/inbox/11 <<EOF
+cat >"`mhpath new`" <<EOF
 From: Anon
 To: Mailinglist
 Subject: =?ISO-8859-15?Q?Re=3A_H=E5lla_linuxsystem_uppdaterade?=
@@ -212,13 +213,13 @@ Content-Type: multipart/alternative; boundary="----=_nmh-multipart"
 
 ------=_nmh-multipart
 Content-Type: text/plain; charset="Windows-1252"
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 Need to go! Need ... to ... go!
 
 ------=_nmh-multipart
 Content-Type: text/html; charset="Windows-1252"
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 <html>
 <head>
@@ -235,7 +236,7 @@ Content-Transfer-Encoding: 8bit
 ------=_nmh-multipart--
 EOF
 
-cat >"$MH_TEST_DIR"/Mail/inbox/12 <<EOF
+cat >"`mhpath new`" <<EOF
 MIME-Version: 1.0
 From: sender@example.com
 To: bonquiqui@example.com
@@ -291,7 +292,7 @@ Content-Type: multipart/alternative; boundary="----=_nmh-multipart-3"
 
 ------=_nmh-multipart-3
 Content-Type: text/plain; charset="Windows-1252"
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 ------=_nmh-multipart
 ------=_nmh-multipart-1
@@ -299,7 +300,7 @@ Content-Transfer-Encoding: 8bit
 
 ------=_nmh-multipart-3
 Content-Type: text/html; charset="Windows-1252"
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 <html>
 <head>
@@ -317,7 +318,7 @@ Content-Transfer-Encoding: 8bit
 ------=_nmh-multipart-3--
 EOF
 
-cat >"$MH_TEST_DIR"/Mail/inbox/12 <<EOF
+cat >"`mhpath last`" <<EOF
 MIME-Version: 1.0
 From: sender@example.com
 To: bonquiqui@example.com
@@ -369,7 +370,7 @@ Content-Type: multipart/alternative; boundary="----=_nmh-multipart"
 
 ------=_nmh-multipart
 Content-Type: text/plain; charset="Windows-1252"
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 Need to go! Need ... to ... go!
 
@@ -443,14 +444,14 @@ Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
 ------- =_aaaaaaaaaa0
 Content-Type: text/plain; charset="iso-8859-1"; name="test4.txt"
 Content-Disposition: attachment; filename="test4.txt"
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 This is a text/plain part.
 
 ------- =_aaaaaaaaaa0--
 EOF
 
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 To: recipient@example.com
 From: sender@example.com
 Subject: mhfixmsg decode test 1
@@ -500,7 +501,7 @@ This is additional content after the last subpart of the multipart.
 Content-Type: text/plain; charset="iso-8859-1"
 Content-Disposition: attachment; filename="test2.txt"
 Content-MD5: kq+Hnc2SD/eKwAnkFBDuEA==
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 This is the second text/plain part.
 
@@ -513,7 +514,7 @@ This is the third text/plain part.
 ------- =_aaaaaaaaaa0
 Content-Type: text/plain; charset="iso-8859-1"; name="test4.txt"
 Content-Disposition: attachment; filename="test4.txt"
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 This is the fourth text/plain part.
 
@@ -522,7 +523,7 @@ This is the fourth text/plain part.
 This is additional content after the last subpart of the multipart.
 EOF
 
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 To: recipient@example.com
 From: sender@example.com
 Subject: mhfixmsg decode test 2
@@ -578,7 +579,7 @@ check "$expected" "$actual"
 #### Generated the encoded text below with:
 ####   $ printf '\275\262=\274\000\n' | base64
 start_test "attempted (default, 8 bit) -decodetext of binary text"
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 To: recipient@example.com
 From: sender@example.com
 Subject: mhfixmsg binary decode test
@@ -594,9 +595,9 @@ vbI9vAAK
 ------- =_aaaaaaaaaa0--
 EOF
 
-cp -p `mhpath last` "$expected"
+cp -p "`mhpath last`" "$expected"
 run_prog mhfixmsg last
-check `mhpath last` "$expected" 'keep first'
+check "`mhpath last`" "$expected" 'keep first'
 
 
 # check for successful decode of a different part with attempted -decodetext
@@ -611,7 +612,7 @@ Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
 
 ------- =_aaaaaaaaaa0
 Content-Type: text/plain; charset="iso-8859-1"
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 This is a text plain part
 
@@ -643,7 +644,7 @@ ICA8L2JvZHk+PC9odG1sPg==
 ------- =_aaaaaaaaaa0--
 EOF
 
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 To: recipient@example.com
 From: sender@example.com
 Subject: mhfixmsg successful decode of text/plain with failed binary decode
@@ -685,7 +686,7 @@ ICA8L2JvZHk+PC9odG1sPg==
 EOF
 
 run_prog mhfixmsg -noreformat last
-check `mhpath last` "$expected" 'keep first'
+check "`mhpath last`" "$expected" 'keep first'
 
 
 # check for successful decode of a different part with -decodetext of binary
@@ -697,10 +698,11 @@ From: sender@example.com
 Subject: mhfixmsg successful decode of text/plain with failed binary decode
 MIME-Version: 1.0
 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
+Content-Transfer-Encoding: binary
 
 ------- =_aaaaaaaaaa0
 Content-Type: text/plain; charset="iso-8859-1"
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 This is a text plain part
 
@@ -715,7 +717,7 @@ Content-Disposition: inline
 EOF
 
 run_prog mhfixmsg -noreformat -decodetext binary last
-check `mhpath last` "$expected"
+check "`mhpath last`" "$expected"
 
 
 # check -decodetext of binary (containing ASCII NUL) text
@@ -725,6 +727,7 @@ From: sender@example.com
 Subject: mhfixmsg binary decode test
 MIME-Version: 1.0
 Content-Type: multipart/mixed; boundary=\"----- =_aaaaaaaaaa0\"
+Content-Transfer-Encoding: binary
 
 ------- =_aaaaaaaaaa0
 Content-Type: text/plain; charset=\"UTF-8\"; name=\"nul+square.txt\"
@@ -739,7 +742,7 @@ check "$expected" "$actual"
 
 
 # check that -reformat succeeds when decode of binary text fails
-start_test "that -reformat succeeds when decode of binary text fails"
+start_test "-reformat succeeds when decode of binary text fails"
 prepare_space >"$expected" <<'EOF'
 MIME-Version: 1.0
 Date: Thu, 11 Apr 2013 02:47:08 -0700
@@ -750,7 +753,7 @@ Content-Type: multipart/alternative; boundary="----=_nmh-multipart"
 
 ------=_nmh-multipart
 Content-Type: text/plain; charset="ISO-8859-1"
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 Mile                                     $0.00
 Time                                    $78.71
@@ -765,7 +768,7 @@ Content-Transfer-Encoding: quoted-printable
 <body>
 EOF
 
-cat >`mhpath new` <<'EOF'
+cat >"`mhpath new`" <<'EOF'
 MIME-Version: 1.0
 Content-Type: text/html; charset="ISO-8859-1"
 Content-Transfer-Encoding: quoted-printable
@@ -821,6 +824,7 @@ From: sender@example.com
 Subject: mhfixmsg textcharset test
 MIME-Version: 1.0
 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
+Content-Transfer-Encoding: 8bit
 
 ------- =_aaaaaaaaaa0
 Content-Type: text/plain; charset="utf-8"; name="square.txt"
@@ -834,7 +838,7 @@ EOF
 
 #### Generated the encoded text below with:
 ####   $ printf '\275\262=\274\n' | base64
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 To: recipient@example.com
 From: sender@example.com
 Subject: mhfixmsg textcharset test
@@ -865,7 +869,7 @@ start_test "-nofixboundary"
 cat >"$expected" <<EOF
 EOF
 
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 Date: Fri, 13 May 2011 08:21:12 -0500
 Content-Type: multipart/alternative;
         boundary="----=_NextPart_000_1781A17_01CC1147.81E9467A"
@@ -885,14 +889,14 @@ The boundaries of this part don't match the header boundary.
 ------=_NextPart_000_1781A1A_01CC1147.81EBA8D4--
 EOF
 
-cp -p `mhpath last` `mhpath new`
+cp -p "`mhpath last`" "`mhpath new`"
 
 run_test 'mhfixmsg last -nofixboundary' ''
 check "$MH_TEST_DIR"/Mail/inbox/18 "$MH_TEST_DIR"/Mail/inbox/19 'keep first'
 
 
-# check that message is not output when fed through stdin
-start_test "that message is not output when fed through stdin"
+# check that message is not output when fed through stdin (without -outfile)
+start_test "message is not output when fed through stdin"
 run_prog mhfixmsg -file - -verbose <`mhpath last` >"$actual" 2>"$actual.err"
 check "$expected" "$actual"
 if grep "mhfixmsg: $MH_TEST_DIR/Mail/.*, fix multipart boundary" \
@@ -934,8 +938,8 @@ check "$expected" "$actual"
 
 
 # check that message is not modified when -fixboundary fails
-start_test "that message is not modified when -fixboundary fails"
-cat >`mhpath new` <<EOF
+start_test "message is not modified when -fixboundary fails"
+cat >"`mhpath new`" <<EOF
 Date: Fri, 13 May 2011 08:21:12 -0500
 Content-Type: multipart/alternative;
         boundary="----=_ NextPart_000_1781A17_01CC1147.81E9467A"
@@ -956,15 +960,15 @@ The boundary below doesn't match the header boundary.
 NextPart_000_1781A1A_01CC1147.81EBA8D4--
 EOF
 
-cp -p `mhpath last` "$expected"
+cp -p "`mhpath last`" "$expected"
 run_test "mhfixmsg last -outfile $actual" ''
 check "$expected" "$actual"
 
 
 # check that text/plain part is not added to text/html in multipart/related
 # when it shouldn't be
-start_test "that text/plain part is not added to text/html in multipart/related when it shouldn't be"
-cat >`mhpath new` <<EOF
+start_test "text/plain part is not added to text/html in multipart/related when it shouldn't be"
+cat >"`mhpath new`" <<EOF
 MIME-Version: 1.0
 Date: Tue, 26 Feb 2013 18:07:20 -0600
 Subject: multipart/related, not /alternative
@@ -993,7 +997,7 @@ Your email client does not support HTML messages
 ------=_Part_90310_101292502.1--
 EOF
 
-cp -p `mhpath last` "$expected"
+cp -p "`mhpath last`" "$expected"
 
 if [ $can_reformat_texthtml -eq 1 ]; then
   #### lynx inserts multiple blank lines, so squeeze them.
@@ -1006,7 +1010,7 @@ fi
 
 # check that text/plain part is added to text/html in multipart/related
 # when it should be
-start_test "that text/plain part is added to text/html in multipart/related when it should be"
+start_test "text/plain part is added to text/html in multipart/related when it should be"
 cat >"$expected" <<EOF
 MIME-Version: 1.0
 Date: Tue, 26 Feb 2013 18:07:20 -0600
@@ -1035,7 +1039,7 @@ Content-Transfer-Encoding: 7bit
 ------=_Part_90310_101292502.1--
 EOF
 
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 MIME-Version: 1.0
 Date: Tue, 26 Feb 2013 18:07:20 -0600
 Subject: multipart/related, not /alternative
@@ -1068,6 +1072,7 @@ fi
 
 
 # check handling of rfc822 message type
+# also, checks -fixboundary
 start_test "handling of rfc822 message type"
 cat >"$expected" <<EOF
 From: Test <test@example.com>
@@ -1098,14 +1103,14 @@ This is an RFC-822 message.
 and some garbage at the end
 EOF
 
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 From: Test <test@example.com>
 To: Some User <user@example.com>
 Date: Fri, 29 Sep 2006 00:00:00
 Message-Id: @test.nmh
 Subject: message with message/rfc822 attachment
 MIME-Version: 1.0
-Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaa0"
+Content-Type: multipart/mixed; boundary="----- =badboundary"
 
 and some garbage before the attachment
 
@@ -1144,7 +1149,7 @@ There are two CR-LF pairs at the end of this sentence.
 \r
 EOF
 
-cat >`mhpath new` <<'EOF'
+cat >"`mhpath new`" <<'EOF'
 MIME-Version: 1.0
 From: sender@example.com
 To: recipient@example.com
@@ -1172,7 +1177,7 @@ There were two CR-LF pairs at the end of this sentence.
 
 EOF
 
-cat >`mhpath new` <<'EOF'
+cat >"`mhpath new`" <<'EOF'
 MIME-Version: 1.0
 From: sender@example.com
 To: recipient@example.com
@@ -1198,13 +1203,12 @@ Content-Type: multipart/alternative; boundary="----=_Part_876302"
 
 ------=_Part_876302
 Content-Type: text/plain; charset="UTF-8"
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 Yes, the text/plain part really was empty.
 
 ------=_Part_876302
 Content-Type: text/html; charset="UTF-8"
-Content-Transfer-Encoding: 8bit
 Content-Disposition: inline
 
 <html><head>
@@ -1218,7 +1222,7 @@ Content-Disposition: inline
 ------=_Part_876302--
 EOF
 
-cat >`mhpath new` <<'EOF'
+cat >"`mhpath new`" <<'EOF'
 To: recipient@example.com
 From: sender@example.com
 Subject: mhfixmsg replacement of bad text/plain part test
@@ -1234,7 +1238,6 @@ Content-Disposition: inline
 
 ------=_Part_876302
 Content-Type: text/html; charset="UTF-8"
-Content-Transfer-Encoding: 8bit
 Content-Disposition: inline
 
 <html><head>
@@ -1276,7 +1279,6 @@ Content-Disposition: inline
 
 ------=_Part_876302
 Content-Type: text/html; charset="UTF-8"
-Content-Transfer-Encoding: 8bit
 Content-Disposition: inline
 
 <html><head>
@@ -1320,7 +1322,7 @@ Content-Disposition: attachment;
 ------- =_aaaaaaaaaa0--
 EOF
 
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 To: recipient@example.com
 Subject: test
 From: sender@example.com
@@ -1396,7 +1398,7 @@ this is plain text
 ------- =_aaaaaaaaaa0--
 EOF
 
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 To: recipient@example.com
 From: sender@example.com
 Subject: mhfixmsg with incorrect Content-Type
@@ -1412,7 +1414,7 @@ this is plain text
 EOF
 
 mhfixmsg -fixtype application/octet-stream last
-check "$expected" `mhpath last`
+check "$expected" "`mhpath last`"
 
 
 # check default -decodetypes
@@ -1428,14 +1430,14 @@ Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
 Content-Type: text/plain; charset="iso-8859-1"
 Content-Disposition: attachment; filename="test1.txt"
 Content-MD5: kq+Hnc2SD/eKwAnkFBDuEA==
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 This is the text/plain part.
 
 ------- =_aaaaaaaaaa0
 Content-Type: text/html; charset="iso-8859-1"; name="test2.txt"
 Content-Disposition: attachment; filename="test2.txt"
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 <html>
 <head>
@@ -1447,7 +1449,7 @@ Content-Transfer-Encoding: 8bit
 ------- =_aaaaaaaaaa0--
 EOF
 
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 To: recipient@example.com
 From: sender@example.com
 Subject: mhfixmsg decode test 3
@@ -1489,7 +1491,7 @@ Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
 Content-Type: text/plain; charset="iso-8859-1"
 Content-Disposition: attachment; filename="test1.txt"
 Content-MD5: kq+Hnc2SD/eKwAnkFBDuEA==
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 This is the text/plain part.
 
@@ -1504,7 +1506,7 @@ CjwvYm9keT4NCjwvaHRtbD4NCg==
 ------- =_aaaaaaaaaa0--
 EOF
 
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 To: recipient@example.com
 From: sender@example.com
 Subject: mhfixmsg decode test 4
@@ -1546,14 +1548,14 @@ Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
 Content-Type: text/plain; charset="iso-8859-1"
 Content-Disposition: attachment; filename="test1.txt"
 Content-MD5: kq+Hnc2SD/eKwAnkFBDuEA==
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 This is the text/plain part.
 
 ------- =_aaaaaaaaaa0
 Content-Type: application/ics; charset="iso-8859-1"; name="invite.ics"
 Content-Disposition: attachment; filename="invite.ics"
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 BEGIN:VCALENDAR\r
 VERSION:2.0\r
@@ -1569,7 +1571,7 @@ END:VCALENDAR
 ------- =_aaaaaaaaaa0--
 EOF
 
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 To: recipient@example.com
 From: sender@example.com
 Subject: mhfixmsg decode test 5
@@ -1614,14 +1616,14 @@ Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
 Content-Type: text/plain; charset="iso-8859-1"
 Content-Disposition: attachment; filename="test1.txt"
 Content-MD5: kq+Hnc2SD/eKwAnkFBDuEA==
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 This is the text/plain part.
 
 ------- =_aaaaaaaaaa0
 Content-Type: application/ics; charset="iso-8859-1"; name="invite.ics"
 Content-Disposition: attachment; filename="invite.ics"
-Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 7bit
 
 BEGIN:VCALENDAR
 VERSION:2.0
@@ -1637,7 +1639,7 @@ END:VCALENDAR
 ------- =_aaaaaaaaaa0--
 EOF
 
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 To: recipient@example.com
 From: sender@example.com
 Subject: mhfixmsg decode test 5
@@ -1671,14 +1673,14 @@ check "$expected" "$actual"
 
 # check that input is passed through to output when there's a parse error
 # (the charset string is missing its closing quote) with -outfile
-start_test "that input is passed through to output when there's a parse error"
+start_test "input is passed through to output when there's a parse error"
 cat >"$expected.err" <<EOF
 mhfixmsg: invalid quoted-string in message 31's Content-Type: field
           (parameter charset)
 mhfixmsg: unable to parse message 31
 EOF
 
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 To: recipient@example.com
 From: sender@example.com
 Subject: mhfixmsg pass through on parse error
@@ -1699,7 +1701,7 @@ set +e
 run_prog mhfixmsg last -outfile "$actual" 2>"$actual.err"
 set -e
 #### Expected output is identical to the input message.
-check `mhpath last` "$actual" 'keep first'
+check "`mhpath last`" "$actual" 'keep first'
 check "$expected.err" "$actual.err"
 
 
@@ -1707,15 +1709,27 @@ check "$expected.err" "$actual.err"
 # (the charset string is missing its closing quote) with -outfile, and
 # input from stdin.  Don't check err output, because it contains the name
 # of a tmp file.  It's similar to that of the previous check.
-start_test "that input is passed through to output when there's a parse error"
+start_test "input is passed through to output when there's a parse error"
 set +e
 run_prog mhfixmsg -file - -outfile - <`mhpath last` >"$actual" 2>/dev/null
 set -e
 #### Expected output is identical to the input message.
-check `mhpath last` "$actual"
+check "`mhpath last`" "$actual" 'keep first'
+
+
+start_test "pass through message with relative folder path with parse error"
+#### Factor out leading portion of current folder path and make it relative.
+pwd=`pwd`
+set +e
+run_prog mhfixmsg +./`mhpath | sed "s%^$pwd/%%"` last -out - >"$actual" 2>/dev/null
+set -e
+folder -f +inbox >/dev/null
+#### Expected output is identical to the input message.
+check "`mhpath last`" "$actual"
 
 
 start_test "fix RFC 2047 encoded header parameters"
+#### Also, add C-T-E:8bit to the message headers.
 cat >"$expected" <<EOF
 To: recipient@example.com
 From: sender@example.com
@@ -1723,15 +1737,13 @@ Date: Wed, 28 Sep 2016 11:24:28 -0400
 Subject: invalid header parameter encoding
 MIME-Version: 1.0
 Content-Type: multipart/mixed; boundary=001a114dd3e8fe9c56053d92f414
+Content-Transfer-Encoding: 8bit
 
 --001a114dd3e8fe9c56053d92f414
-
 Content-Type: text/plain; charset=UTF-8
 
 This is a test.
 
---001a114dd3e8fe9c4a053d92f412--
-
 --001a114dd3e8fe9c56053d92f414
 Content-Type: text/plain; charset="UTF-8"; name*=UTF-8''test%C3%B8.txt
 Content-Disposition: attachment; filename*=UTF-8''test%C3%B8.txt
@@ -1743,7 +1755,7 @@ is testø.txt.
 --001a114dd3e8fe9c56053d92f414--
 EOF
 
-cat >`mhpath new` <<EOF
+cat >"`mhpath new`" <<EOF
 To: recipient@example.com
 From: sender@example.com
 Date: Wed, 28 Sep 2016 11:24:28 -0400
@@ -1752,13 +1764,10 @@ MIME-Version: 1.0
 Content-Type: multipart/mixed; boundary=001a114dd3e8fe9c56053d92f414
 
 --001a114dd3e8fe9c56053d92f414
-
 Content-Type: text/plain; charset=UTF-8
 
 This is a test.
 
---001a114dd3e8fe9c4a053d92f412--
-
 --001a114dd3e8fe9c56053d92f414
 Content-Type: text/plain; charset=UTF-8; name="=?UTF-8?B?dGVzdMO4LnR4dA==?="
 Content-Disposition: attachment; filename="=?UTF-8?B?dGVzdMO4LnR4dA==?="