Throw more errors when using PHP mail()

This commit is contained in:
the-djmaze 2024-03-27 01:24:12 +01:00
parent 35db1f4eb8
commit 7213395118

View file

@ -777,11 +777,17 @@ trait Messages
$oAccount->SmtpConnectAndLogin($this->Plugins(), $oSmtpClient); $oAccount->SmtpConnectAndLogin($this->Plugins(), $oSmtpClient);
if ($oSmtpClient->Settings->usePhpMail) { if ($oSmtpClient->Settings->usePhpMail) {
if (\MailSo\Base\Utils::FunctionCallable('mail')) { if (!$sFrom || !\MailSo\Base\Utils::FunctionCallable('mail')) {
throw new ClientException(Notifications::CantSendMessage);
}
$oToCollection = $oMessage->GetTo(); $oToCollection = $oMessage->GetTo();
if ($oToCollection && $oFrom) { if (!$oToCollection) {
throw new ClientException(Notifications::CantSendMessage);
}
$sRawBody = \stream_get_contents($rMessageStream); $sRawBody = \stream_get_contents($rMessageStream);
if (!empty($sRawBody)) { if (empty($sRawBody)) {
throw new ClientException(Notifications::CantSendMessage);
}
$sMailTo = \trim($oToCollection->ToString(true)); $sMailTo = \trim($oToCollection->ToString(true));
$sMailSubject = \trim($oMessage->GetSubject()); $sMailSubject = \trim($oMessage->GetSubject());
$sMailSubject = \strlen($sMailSubject) ? \MailSo\Base\Utils::EncodeHeaderValue($sMailSubject) : ''; $sMailSubject = \strlen($sMailSubject) ? \MailSo\Base\Utils::EncodeHeaderValue($sMailSubject) : '';
@ -802,17 +808,11 @@ trait Messages
), \LOG_DEBUG); ), \LOG_DEBUG);
$bR = $this->Config()->Get('labs', 'mail_func_additional_parameters', false) ? $bR = $this->Config()->Get('labs', 'mail_func_additional_parameters', false) ?
\mail($sMailTo, $sMailSubject, $sMailBody, $sMailHeaders, '-f'.$oFrom->GetEmail()) : \mail($sMailTo, $sMailSubject, $sMailBody, $sMailHeaders, '-f'.$sFrom) :
\mail($sMailTo, $sMailSubject, $sMailBody, $sMailHeaders); \mail($sMailTo, $sMailSubject, $sMailBody, $sMailHeaders);
if (!$bR) { if (!$bR) {
throw new ClientException(Notifications::CantSendMessage); throw new ClientException(Notifications::CantSendMessage);
} }
}
}
} else {
throw new ClientException(Notifications::CantSendMessage);
}
} else if ($oSmtpClient->IsConnected()) { } else if ($oSmtpClient->IsConnected()) {
if ($iMessageStreamSize && $oSmtpClient->maxSize() && $iMessageStreamSize * 1.33 > $oSmtpClient->maxSize()) { if ($iMessageStreamSize && $oSmtpClient->maxSize() && $iMessageStreamSize * 1.33 > $oSmtpClient->maxSize()) {
throw new ClientException(Notifications::ClientViewError, 'Message size '. ($iMessageStreamSize * 1.33) . ' bigger then max ' . $oSmtpClient->maxSize()); throw new ClientException(Notifications::ClientViewError, 'Message size '. ($iMessageStreamSize * 1.33) . ' bigger then max ' . $oSmtpClient->maxSize());