1
0
mirror of https://github.com/e107inc/e107.git synced 2025-04-20 20:51:53 +02:00

Fix for embedded image data causing mailing failure after upgrading PHPMailer.

This commit is contained in:
Cameron 2020-03-04 18:13:05 -08:00
parent a3d99f0d19
commit bb6fe3283b

View File

@ -433,7 +433,7 @@ class e107Email extends PHPMailer
{
if ($this->logEnable && ($this->logHandle === false))
{
$logFileName = MAIL_LOG_PATH.'mailoutlog.txt';
$logFileName = MAIL_LOG_PATH.'mailoutlog.log';
$this->logHandle = fopen($logFileName, 'a'); // Always append to file
}
if ($this->logHandle !== false)
@ -534,7 +534,7 @@ class e107Email extends PHPMailer
}
catch (Exception $e)
{
// do something
$this->logLine($e->getMessage());
}
break;
@ -545,7 +545,7 @@ class e107Email extends PHPMailer
}
catch (Exception $e)
{
// do something
$this->logLine($e->getMessage());
}
break;
@ -562,7 +562,7 @@ class e107Email extends PHPMailer
}
catch (Exception $e)
{
// do something
$this->logLine($e->getMessage());
}
}
@ -580,7 +580,7 @@ class e107Email extends PHPMailer
}
catch (Exception $e)
{
// do something
$this->logLine($e->getMessage());
}
}
@ -708,7 +708,7 @@ class e107Email extends PHPMailer
}
catch (Exception $e)
{
// do something
$this->logLine($e->getMessage());
}
}
@ -746,7 +746,7 @@ class e107Email extends PHPMailer
}
catch (Exception $e)
{
// do something
$this->logLine($e->getMessage());
}
@ -1093,17 +1093,26 @@ class e107Email extends PHPMailer
$this->SendCount++;
if($this->isError())
{
$this->logLine('Error info: '.$this->ErrorInfo);
e107::getMessage()->addInfo($this->ErrorInfo);
}
$result = false;
if ($this->debug == false && (($this->logEnable == 0) || ($this->logEnable == 2)) )
{
// prevent user/script details being exposed in X-PHP-Script header
$oldphpself = $_SERVER['PHP_SELF'];
$oldremoteaddr = $_SERVER['REMOTE_ADDR'];
$_SERVER['PHP_SELF'] = "/";
$_SERVER['REMOTE_ADDR'] = $_SERVER['SERVER_ADDR'];
$_SERVER["HTTP_X_FORWARDED_FOR"] = $_SERVER['SERVER_ADDR'];
$_SERVER["HTTP_CF_CONNECTING_IP"] = $_SERVER['SERVER_ADDR'];
// prevent user/script details being exposed in X-PHP-Script header
if(!empty($_SERVER['REMOTE_ADDR']))
{
$oldphpself = $_SERVER['PHP_SELF'];
$oldremoteaddr = $_SERVER['REMOTE_ADDR'];
$_SERVER['PHP_SELF'] = "/";
$_SERVER['REMOTE_ADDR'] = $_SERVER['SERVER_ADDR'];
$_SERVER["HTTP_X_FORWARDED_FOR"] = $_SERVER['SERVER_ADDR'];
$_SERVER["HTTP_CF_CONNECTING_IP"] = $_SERVER['SERVER_ADDR'];
}
try
{
@ -1111,15 +1120,16 @@ class e107Email extends PHPMailer
}
catch (Exception $e)
{
// echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
$this->logLine($e->getMessage());
}
$_SERVER['PHP_SELF'] = $oldphpself;
$_SERVER['REMOTE_ADDR'] = $oldremoteaddr;
$_SERVER["HTTP_X_FORWARDED_FOR"] = $oldremoteaddr;
$_SERVER["HTTP_CF_CONNECTING_IP"] = $oldremoteaddr;
if(!empty($oldremoteaddr))
{
$_SERVER['PHP_SELF'] = $oldphpself;
$_SERVER['REMOTE_ADDR'] = $oldremoteaddr;
$_SERVER["HTTP_X_FORWARDED_FOR"] = $oldremoteaddr;
$_SERVER["HTTP_CF_CONNECTING_IP"] = $oldremoteaddr;
}
if (!$bulkmail && !$this->SMTPKeepAlive && ($this->Mailer == 'smtp')) $this->smtpClose();
}
@ -1213,12 +1223,12 @@ class e107Email extends PHPMailer
* @param bool $advanced
* @return null (message saved ready to send)
*/
public function MsgHTML($message, $basedir = '', $advanced=false)
public function MsgHTML($message, $basedir = '', $advanced = false)
{
$tp = e107::getParser();
$message = $tp->toEmail($message, false, 'rawtext');
preg_match_all("/(src|background)=([\"\'])(.*)\\2/Ui", $message, $images); // Modified to accept single quotes as well
if(isset($images[3]) && ($this->previewMode === false))
{
@ -1231,7 +1241,10 @@ class e107Email extends PHPMailer
foreach($images[3] as $i => $url)
{
if(strpos($url,'data:') === 0) // already embedded, so skip processing
{
continue;
}
// do not change urls for absolute images (thanks to corvuscorax)
if (!preg_match('#^[A-z]+://#',$url))
{
@ -1289,6 +1302,7 @@ class e107Email extends PHPMailer
}
catch (Exception $e)
{
$this->logLine($e->getMessage());
if ($this->debug)
{
echo "Add embedded image {$url} failed<br />";
@ -1339,7 +1353,7 @@ class e107Email extends PHPMailer
$this->AltBody = 'To view this email message, enable HTML!' . "\n\n";
}
return null;
return $this->Body;
}
@ -1384,7 +1398,7 @@ class e107Exception extends Exception
{
parent::__construct($message, $code);
e107::getLog()->e_log_event(10,
e107::getLog()->addEvent(10,
$this->getFile().'|@'.$this->getLine(),
'EXCEPT',
$this->getCode().':'.$this->getMessage(),