mirror of
https://github.com/e107inc/e107.git
synced 2025-08-03 05:07:27 +02:00
Closes #4924 - sendEmail() updated.
This commit is contained in:
@@ -988,8 +988,17 @@ class e107Email extends PHPMailer
|
|||||||
$identifier = deftrue('MAIL_IDENTIFIER', 'X-e107-id');
|
$identifier = deftrue('MAIL_IDENTIFIER', 'X-e107-id');
|
||||||
|
|
||||||
if (isset($eml['SMTPDebug'])) { $this->SMTPDebug = $eml['SMTPDebug']; } // 'false' is a valid value!
|
if (isset($eml['SMTPDebug'])) { $this->SMTPDebug = $eml['SMTPDebug']; } // 'false' is a valid value!
|
||||||
if (!empty($eml['sender_email'])) { $this->From = $eml['sender_email']; }
|
if (!empty($eml['sender_email']) && !empty($eml['sender_email']))
|
||||||
if (!empty($eml['sender_name'])) { $this->FromName = $eml['sender_name']; }
|
{
|
||||||
|
$this->setFrom($eml['sender_email'], $eml['sender_name']);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!empty($eml['sender_email'])) { $this->From = $eml['sender_email']; }
|
||||||
|
if (!empty($eml['sender_name'])) { $this->FromName = $eml['sender_name']; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!empty($eml['replyto'])) { $this->AddAddressList('replyto',$eml['replyto'],vartrue($eml['replytonames'],'')); }
|
if (!empty($eml['replyto'])) { $this->AddAddressList('replyto',$eml['replyto'],vartrue($eml['replytonames'],'')); }
|
||||||
if (isset($eml['html'])) { $this->allow_html = $eml['html']; } // 'false' is a valid value!
|
if (isset($eml['html'])) { $this->allow_html = $eml['html']; } // 'false' is a valid value!
|
||||||
if (isset($eml['html_header'])) { $this->add_HTML_header = $eml['html_header']; } // 'false' is a valid value!
|
if (isset($eml['html_header'])) { $this->add_HTML_header = $eml['html_header']; } // 'false' is a valid value!
|
||||||
@@ -1354,7 +1363,8 @@ class e107Email extends PHPMailer
|
|||||||
|
|
||||||
|
|
||||||
$this->isHTML(true);
|
$this->isHTML(true);
|
||||||
$this->Body = $message;
|
// $this->Body = $message;
|
||||||
|
$this->Body = static::normalizeBreaks($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('</td>', "\t", $textMsg);
|
||||||
@@ -1362,7 +1372,7 @@ class e107Email extends PHPMailer
|
|||||||
$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)
|
||||||
$textMsg = trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/s','',$textMsg)));
|
// $textMsg = trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/s','',$textMsg)));
|
||||||
|
|
||||||
if($this->debug)
|
if($this->debug)
|
||||||
{
|
{
|
||||||
@@ -1372,8 +1382,7 @@ class e107Email extends PHPMailer
|
|||||||
|
|
||||||
if(!empty($textMsg)) // Always set it, even if AltBody is empty.
|
if(!empty($textMsg)) // Always set it, even if AltBody is empty.
|
||||||
{
|
{
|
||||||
$this->AltBody = html_entity_decode($textMsg);
|
$this->AltBody = static::normalizeBreaks($this->html2text($textMsg, $advanced));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(empty($this->AltBody))
|
if(empty($this->AltBody))
|
||||||
|
@@ -132,10 +132,6 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testPreview()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testAddInlineImages()
|
public function testAddInlineImages()
|
||||||
{
|
{
|
||||||
@@ -164,7 +160,7 @@ Admin<br />
|
|||||||
$this->eml->MsgHTML($html);
|
$this->eml->MsgHTML($html);
|
||||||
|
|
||||||
$result = json_encode($this->eml->AltBody);
|
$result = json_encode($this->eml->AltBody);
|
||||||
$expected = '"Hi Joe\\nCheck out https:\\/\\/e107.org\\n\\nThanks,\\nAdmin\\n\\nWebsite:\\thttps:\\/\\/e107.org\\t\\nGithub:\\thttps:\\/\\/github.com\\/e107inc\\/"';
|
$expected = '"Hi Joe\r\nCheck out https:\/\/e107.org\r\n\r\nThanks,\r\nAdmin\r\n\r\nWebsite:\thttps:\/\/e107.org\t\r\nGithub:\thttps:\/\/github.com\/e107inc\/"';
|
||||||
$this->assertSame($expected, $result);
|
$this->assertSame($expected, $result);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -211,5 +207,36 @@ Admin<br />
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
function testSentMimeMessage()
|
||||||
|
{
|
||||||
|
$eml = array(
|
||||||
|
'subject' => "[PREVIEW]",
|
||||||
|
'sender_email' => "noreply@test.com",
|
||||||
|
'sender_name' => "Test Person",
|
||||||
|
'replyto' => "someone@else.com",
|
||||||
|
'html' => true,
|
||||||
|
'priority' => 1,
|
||||||
|
// 'template' => 'default',
|
||||||
|
'body' => "Hi,<br />This is the <b>body</b> text",
|
||||||
|
'cc' => '',
|
||||||
|
'shortcodes' => [
|
||||||
|
'NAME' => "TestName",
|
||||||
|
'DATE' => 'Jan 1st, 2020'
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->eml->arraySet($eml);
|
||||||
|
$this->eml->AddAddressList('to','recipient@example.com',"Example Recipient");
|
||||||
|
$this->eml->preSend();
|
||||||
|
|
||||||
|
$result = $this->eml->getSentMIMEMessage();
|
||||||
|
|
||||||
|
$this->assertStringContainsString('Content-Type: text/plain;', $result);
|
||||||
|
$this->assertStringContainsString('This is the body text', $result);
|
||||||
|
|
||||||
|
$this->assertStringContainsString('Content-Type: text/html;', $result);
|
||||||
|
$this->assertStringContainsString('Hi,<br />This is the <b>body</b> text', $result);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user