Fixed bug #52681 (mb_send_mail() appends an extra MIME-Version header).

This commit is contained in:
Adam Harvey 2010-08-25 06:07:22 +00:00
parent 266e369184
commit 45960c9030
9 changed files with 45 additions and 17 deletions

View File

@ -4025,7 +4025,7 @@ PHP_FUNCTION(mb_send_mail)
}
/* other headers */
#define PHP_MBSTR_MAIL_MIME_HEADER1 "Mime-Version: 1.0"
#define PHP_MBSTR_MAIL_MIME_HEADER1 "MIME-Version: 1.0"
#define PHP_MBSTR_MAIL_MIME_HEADER2 "Content-Type: text/plain"
#define PHP_MBSTR_MAIL_MIME_HEADER3 "; charset="
#define PHP_MBSTR_MAIL_MIME_HEADER4 "Content-Transfer-Encoding: "
@ -4038,8 +4038,10 @@ PHP_FUNCTION(mb_send_mail)
}
}
mbfl_memory_device_strncat(&device, PHP_MBSTR_MAIL_MIME_HEADER1, sizeof(PHP_MBSTR_MAIL_MIME_HEADER1) - 1);
mbfl_memory_device_strncat(&device, "\n", 1);
if (!zend_hash_exists(&ht_headers, "MIME-VERSION", sizeof("MIME-VERSION") - 1)) {
mbfl_memory_device_strncat(&device, PHP_MBSTR_MAIL_MIME_HEADER1, sizeof(PHP_MBSTR_MAIL_MIME_HEADER1) - 1);
mbfl_memory_device_strncat(&device, "\n", 1);
}
if (!suppressed_hdrs.cnt_type) {
mbfl_memory_device_strncat(&device, PHP_MBSTR_MAIL_MIME_HEADER2, sizeof(PHP_MBSTR_MAIL_MIME_HEADER2) - 1);

View File

@ -0,0 +1,26 @@
--TEST--
Bug #52681 (mb_send_mail() appends an extra MIME-Version header)
--SKIPIF--
<?php
if (!function_exists("mb_send_mail") || !mb_language("neutral")) {
die("skip mb_send_mail() not available");
}
?>
--INI--
sendmail_path=/bin/cat
mail.add_x_header=off
--FILE--
<?php
$to = 'example@example.com';
$headers = 'MIME-Version: 2.0';
mb_send_mail($to, mb_language(), "test", $headers);
?>
--EXPECTF--
To: example@example.com
Subject: %s
MIME-Version: 2.0
Content-Type: text/plain; charset=%s
Content-Transfer-Encoding: %s
%s

View File

@ -25,14 +25,14 @@ if (mb_language("neutral")) {
--EXPECTF--
To: example@example.com
Subject: %s
Mime-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=%s
Content-Transfer-Encoding: %s
%s
To: example@example.com
Subject: test neutral
Mime-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: BASE64

View File

@ -25,14 +25,14 @@ if (mb_language("japanese")) {
--EXPECTF--
To: example@example.com
Subject: %s
Mime-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=%s
Content-Transfer-Encoding: %s
%s
To: example@example.com
Subject: =?ISO-2022-JP?B?GyRCJUYlOSVIGyhCIEphcGFuZXNl?=
Mime-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit

View File

@ -25,14 +25,14 @@ if (mb_language("english")) {
--EXPECTF--
To: example@example.com
Subject: %s
Mime-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=%s
Content-Transfer-Encoding: %s
%s
To: example@example.com
Subject: test English
Mime-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=%s-8859-1
Content-Transfer-Encoding: 8bit

View File

@ -25,14 +25,14 @@ if (mb_language("german")) {
--EXPECTF--
To: example@example.com
Subject: %s
Mime-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=%s
Content-Transfer-Encoding: %s
%s
To: example@example.com
Subject: =?ISO-8859-15?Q?Pr=FCfung=20German?=
Mime-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=%s-8859-15
Content-Transfer-Encoding: 8bit

View File

@ -28,7 +28,7 @@ if (mb_language("simplified chinese")) {
--EXPECTF--
To: example@example.com
Subject: %s
Mime-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=%s
Content-Transfer-Encoding: %s
@ -36,7 +36,7 @@ Content-Transfer-Encoding: %s
To: example@example.com
Subject: =?HZ-GB-2312?B?fnsyYlFpfn0gU2ltcGxpZmllZCBD?=
=?HZ-GB-2312?B?aGluZXNl?=
Mime-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=HZ-GB-2312
Content-Transfer-Encoding: 7bit

View File

@ -28,14 +28,14 @@ if (mb_language("traditional chinese")) {
--EXPECTF--
To: example@example.com
Subject: %s
Mime-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=%s
Content-Transfer-Encoding: %s
%s
To: example@example.com
Subject: =?BIG5?B?tPrF5yBUcmFkaXRpb25hbCBDaGluZXNl?=
Mime-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=BIG5
Content-Transfer-Encoding: 8bit

View File

@ -28,14 +28,14 @@ if (mb_language("korean")) {
--EXPECTF--
To: example@example.com
Subject: %s
Mime-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=%s
Content-Transfer-Encoding: %s
%s
To: example@example.com
Subject: =?ISO-2022-KR?B?GyQpQw5FVz06Ri4PIEtvcmVhbg8=?=
Mime-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-KR
Content-Transfer-Encoding: 7bit