--TEST-- Bug #80751 (Comma in recipient name breaks email delivery) --SKIPIF-- --INI-- SMTP=localhost smtp_port=25 --FILE-- 0) { // sleep for a while to allow msg to be delivered sleep(1); $num_messages = imap_check($imap_stream)->Nmsgs; for ($i = $num_messages; $i > 0; $i--) { $info = imap_headerinfo($imap_stream, $i); if ($info->subject === $subject) { $header = imap_fetchheader($imap_stream, $i); echo "Return-Path header found: "; var_dump(strpos($header, 'Return-Path: joe@example.com') !== false); echo "To header found: "; var_dump(strpos($header, 'To: "" ') !== false); echo "From header found: "; var_dump(strpos($header, 'From: "" ') !== false); echo "Cc header found: "; var_dump(strpos($header, 'Cc: "Lastname, Firstname\\\\" ') !== false); imap_delete($imap_stream, $i); $found = true; break; } } $repeat_count--; } imap_close($imap_stream, CL_EXPUNGE); return $found; } $to = "\"\" <{$users[1]}@$domain>"; $subject = bin2hex(random_bytes(16)); $message = 'hello'; $headers = "From: \"\" \r\n" . "Cc: \"Lastname, Firstname\\\\\" <{$users[2]}@$domain>\r\n" . "Bcc: \"Firstname \\\"Ni,ck\\\" Lastname\" <{$users[3]}@$domain>\r\n"; $res = mail($to, $subject, $message, $headers); if ($res !== true) { die("TEST FAILED : Unable to send test email\n"); } else { echo "Message sent OK\n"; } foreach ([$users[1], $users[2], $users[3]] as $user) { if (!find_and_delete_message("$user@$domain", $subject)) { echo "TEST FAILED: email not delivered\n"; } else { echo "TEST PASSED: Message sent and deleted OK\n"; } } ?> --EXPECT-- Message sent OK Return-Path header found: bool(true) To header found: bool(true) From header found: bool(true) Cc header found: bool(true) TEST PASSED: Message sent and deleted OK Return-Path header found: bool(true) To header found: bool(true) From header found: bool(true) Cc header found: bool(true) TEST PASSED: Message sent and deleted OK Return-Path header found: bool(true) To header found: bool(true) From header found: bool(true) Cc header found: bool(true) TEST PASSED: Message sent and deleted OK