-
-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SendmailMailer: use CRLF endings for php >= 8.0 #83
Conversation
@@ -53,7 +53,7 @@ public function send(Message $mail): void | |||
str_replace(Message::EOL, PHP_EOL, (string) $mail->getEncodedHeader('To')), | |||
str_replace(Message::EOL, PHP_EOL, (string) $mail->getEncodedHeader('Subject')), | |||
str_replace(Message::EOL, PHP_EOL, $parts[1]), | |||
str_replace(Message::EOL, PHP_EOL, $parts[0]), | |||
str_replace(Message::EOL, PHP_VERSION_ID >= 80000 ? "\r\n" : PHP_EOL, $parts[0]), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this also apply to other parameters? Then it would probably be best to remove the workaround and use: (I mean in master)
$args = [
(string) $mail->getEncodedHeader('To'),
(string) $mail->getEncodedHeader('Subject'),
$parts[1],
$parts[0],
];
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I know, this issue is related only to $additional_headers
.
Co-authored-by: Ondřej Čech <ondrej.cech@glami.cz>
Co-authored-by: Ondřej Čech <ondrej.cech@glami.cz>
Hello, can you release the new version with fix this bug? :-) |
done |
Thanks! 😁 |
Version: PHP 8.
OS: Not Windows! Must be one where
PHP_EOL
is not set to\r\n
.Bug Description
Since this update in PHP8 https://git.php.net/?p=php-src.git;a=commit;h=6983ae751cd301886c966b84367fc7aaa1273b2d which addressed bug https://bugs.php.net/bug.php?id=47983 mail headers must be separated by CRLF. Without CRLF the headers are separated by space.
Steps To Reproduce
Run the following code:
Expected Behavior
An HTML-formatted email.
Actual result
The email is missing the header and is treated as plaintext. The boundaries and the encoded mime-part contents show up in the message:
TBH there's no test as I'm not able to create a simple test case for sending and receiving email.