FIX Mail smtps truncated if content has a line with single .

Conflicts:
	htdocs/core/class/CMailFile.class.php
This commit is contained in:
Laurent Destailleur
2020-02-09 15:51:43 +01:00
parent 53f740c60e
commit 6badf724cf

View File

@@ -176,7 +176,7 @@ class CMailFile
if (empty($msg))
{
dol_syslog("CMailFile::CMailfile: Try to send an email with empty body");
$msg='.'; // Avoid empty message (with empty message conten show a multipart structure)
$msg = '.'; // Avoid empty message (with empty message content, you will see a multipart structure)
}
// Detect if message is HTML (use fast method)
@@ -198,7 +198,7 @@ class CMailFile
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
// Replace relative /viewimage to absolute path
$msg = preg_replace('/src="'.preg_quote(DOL_URL_ROOT, '/').'\/viewimage\.php/ims', 'src="'.$urlwithroot.'/viewimage.php', $msg, -1, $nbrep);
$msg = preg_replace('/src="'.preg_quote(DOL_URL_ROOT, '/').'\/viewimage\.php/ims', 'src="'.$urlwithroot.'/viewimage.php', $msg, -1);
if (! empty($conf->global->MAIN_MAIL_FORCE_CONTENT_TYPE_TO_HTML)) $this->msgishtml=1; // To force to send everything with content type html.
@@ -330,6 +330,9 @@ class CMailFile
$msg = $this->checkIfHTML($msg);
}
// Replace . alone on a new line with .. to avoid to have SMTP interpret this as end of message
$msg = preg_replace('/(\r|\n)\.(\r|\n)/ims', '\1..\2', $msg);
if ($this->msgishtml) $smtps->setBodyContent($msg, 'html');
else $smtps->setBodyContent($msg, 'plain');