[php-src] Issue #8870: PHP mail() is not HTML-formatted
| From: | nico-apps | Date: | Sat, 25 Jun 2022 13:21:39 +0000 |
| Subject: | [php-src] Issue #8870: PHP mail() is not HTML-formatted | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-241807@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/8870
Author: nico-apps
### Description
The following code:
```php
$from_name = "Montemanager Elternarbeit";
$from_address = "elternarbeit@montemanager.de";
$mime_boundary = "---" . md5(time());
$code = strval(rand(0, 9)) . strval(rand(0, 9)) . strval(rand(0, 9)) . strval(rand(0, 9)) .
strval(rand(0, 9)) . strval(rand(0, 9));
$headers = "From: ".$from_name." <".$from_address.">\n";
$headers .= "Reply-To: ".$from_name." <".$from_address.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=UTF-8\n";
$headers .= "Content-Transfer-Encoding: 8bit\n\n";
$message = "<div style='background-color:#d1e7dd'><h1
style='background-color:#498f1e; color:white'>Ihr
Verifizierungscode</h1><br><h3>Vielen Dank, dass Sie das Elternarbeits-Tool
verwenden.</h3><br><p>Sie haben versucht, Ihr Passwort auf der <a href='https://montemanager.de/elternarbeit-rc1..php'>Montemanager
Elternarbeit Webseite</a> zu ändern. Dafür benötigen wir jedoch
einen Code zur Verifizierung Ihrer E-Mail Adresse. <b>Bitte geben Sie auf der
geöffneten Seite</b> den folgenden Code
ein:<br><br><h1>$code</h1><br><!--Sollten Sie die Seite aus
Versehen geschlossen haben, können Sie sie <a href='https://montemanager.de/elternarbeit-rc1.php?changePassword'>hier</a>
erneut aufrufen. --><br><br><u>Sollten Sie diesen Vorgang nicht beantragt
haben,</u> können Sie diese E-Mail ignorieren.</p><br><br><div
style='text-align: center'><img src='https://montemanager.de/favicon.ico'></img><small><br>Montemanager
Elternarbeit<br>Version 0.4<br>Programmiert von Nico
Marikucza</small></div>";
if (mail($this->b, "Ihr Verifizierungscode", $message, $headers)) {
...
```
Resulted in this output:

But I expected this output instead:

Note: Executing the same code under PHP 7.4.30 on the same machine results in the expected output,
which I found to be quite weird, as the docs didn't declare any differences between those two
versions in this case.
### PHP Version
PHP 8.1.7
### Operating System
Debian 11 (bullseye)