}
/* 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: "
}
}
- 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);
--- /dev/null
+--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
--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
--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
--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
--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
--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
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
--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
--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