1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-05 14:17:49 +02:00

Fix for poorly formatted text emails derived from html tables.

This commit is contained in:
Cameron
2021-10-25 09:34:13 -07:00
parent 4d88e6575e
commit 723974a0ba
2 changed files with 27 additions and 3 deletions

View File

@@ -1333,6 +1333,8 @@ class e107Email extends PHPMailer
$this->Body = $message; $this->Body = $message;
//print_a($message); //print_a($message);
$textMsg = str_replace("\n", "", $message); $textMsg = str_replace("\n", "", $message);
$textMsg = str_replace('</td>', "\t", $textMsg);
$textMsg = str_replace("</tr>", "\n", $textMsg);
$textMsg = str_replace(array('<br />', '<br>'), "\n", $textMsg); // Modified to make sure newlines carried through $textMsg = str_replace(array('<br />', '<br>'), "\n", $textMsg); // Modified to make sure newlines carried through
$textMsg = preg_replace('#^.*?<body.*?>#', '', $textMsg); // Knock off everything up to and including the body statement (if present) $textMsg = preg_replace('#^.*?<body.*?>#', '', $textMsg); // Knock off everything up to and including the body statement (if present)
$textMsg = preg_replace('#</body.*?>.*$#', '', $textMsg); // Knock off everything after and including the </body> (if present) $textMsg = preg_replace('#</body.*?>.*$#', '', $textMsg); // Knock off everything after and including the </body> (if present)
@@ -1355,7 +1357,7 @@ class e107Email extends PHPMailer
$this->AltBody = 'To view this email message, enable HTML!' . "\n\n"; $this->AltBody = 'To view this email message, enable HTML!' . "\n\n";
} }
return $this->Body; return $this->Body;
} }

View File

@@ -83,12 +83,34 @@
{ {
} }
*/
public function testMsgHTML() public function testMsgHTML()
{ {
$html = "\n
Hi <b>Joe</b><br />
Check out <a href='http://e107.org'>http://e107.org</a><br />
<br />
Thanks,<br />
Admin<br />
<br />
<table>
<tr>
<td>Website:</td><td>https://e107.org</td>
</tr>
<tr>
<td>Github:</td><td>https://github.com/e107inc/</td></tr>
</table>";
$this->eml->MsgHTML($html);
$result = json_encode($this->eml->AltBody);
$expected = '"Hi Joe\\nCheck out http:\\/\\/e107.org\\n\\nThanks,\\nAdmin\\n\\nWebsite:\\thttps:\\/\\/e107.org\\t\\nGithub:\\thttps:\\/\\/github.com\\/e107inc\\/"';
$this->assertSame($expected, $result);
} }
/*
public function testSendEmail() public function testSendEmail()
{ {