|
|
|
|
@ -57,7 +57,6 @@ use Symfony\Component\Mailer\Transport\SendmailTransport; |
|
|
|
|
use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransport; |
|
|
|
|
use Symfony\Component\Mailer\Transport\Smtp\Stream\SocketStream; |
|
|
|
|
use Symfony\Component\Mime\Email; |
|
|
|
|
use Symfony\Component\Mime\Exception\InvalidArgumentException; |
|
|
|
|
use Symfony\Component\Mime\Exception\RfcComplianceException; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -110,7 +109,7 @@ class Mailer implements IMailer { |
|
|
|
|
* @return Message |
|
|
|
|
*/ |
|
|
|
|
public function createMessage(): Message { |
|
|
|
|
$plainTextOnly = $this->config->getSystemValue('mail_send_plaintext_only', false); |
|
|
|
|
$plainTextOnly = $this->config->getSystemValueBool('mail_send_plaintext_only', false); |
|
|
|
|
return new Message(new Email(), $plainTextOnly); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -144,7 +143,7 @@ class Mailer implements IMailer { |
|
|
|
|
* @since 12.0.0 |
|
|
|
|
*/ |
|
|
|
|
public function createEMailTemplate(string $emailId, array $data = []): IEMailTemplate { |
|
|
|
|
$class = $this->config->getSystemValue('mail_template_class', ''); |
|
|
|
|
$class = $this->config->getSystemValueString('mail_template_class', ''); |
|
|
|
|
|
|
|
|
|
if ($class !== '' && class_exists($class) && is_a($class, EMailTemplate::class, true)) { |
|
|
|
|
return new $class( |
|
|
|
|
@ -176,10 +175,10 @@ class Mailer implements IMailer { |
|
|
|
|
* @return string[] $failedRecipients |
|
|
|
|
*/ |
|
|
|
|
public function send(IMessage $message): array { |
|
|
|
|
$debugMode = $this->config->getSystemValue('mail_smtpdebug', false); |
|
|
|
|
$debugMode = $this->config->getSystemValueBool('mail_smtpdebug', false); |
|
|
|
|
|
|
|
|
|
if (!($message instanceof Message)) { |
|
|
|
|
throw new InvalidArgumentException('Object not of type ' . Message::class); |
|
|
|
|
throw new \InvalidArgumentException('Object not of type ' . Message::class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (empty($message->getFrom())) { |
|
|
|
|
@ -192,7 +191,7 @@ class Mailer implements IMailer { |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
$message->setRecipients(); |
|
|
|
|
} catch (InvalidArgumentException|RfcComplianceException $e) { |
|
|
|
|
} catch (\InvalidArgumentException|RfcComplianceException $e) { |
|
|
|
|
$logMessage = sprintf( |
|
|
|
|
'Could not send mail to "%s" with subject "%s" as validation for address failed', |
|
|
|
|
print_r(array_merge($message->getTo(), $message->getCc(), $message->getBcc()), true), |
|
|
|
|
@ -267,7 +266,7 @@ class Mailer implements IMailer { |
|
|
|
|
|
|
|
|
|
$transport = null; |
|
|
|
|
|
|
|
|
|
switch ($this->config->getSystemValue('mail_smtpmode', 'smtp')) { |
|
|
|
|
switch ($this->config->getSystemValueString('mail_smtpmode', 'smtp')) { |
|
|
|
|
case 'sendmail': |
|
|
|
|
$transport = $this->getSendMailInstance(); |
|
|
|
|
break; |
|
|
|
|
@ -294,7 +293,7 @@ class Mailer implements IMailer { |
|
|
|
|
$mailSmtpsecure = ($this->config->getSystemValue('mail_smtpsecure', null) === 'ssl') ? true : null; |
|
|
|
|
$transport = new EsmtpTransport( |
|
|
|
|
$this->config->getSystemValue('mail_smtphost', '127.0.0.1'), |
|
|
|
|
(int)$this->config->getSystemValue('mail_smtpport', 25), |
|
|
|
|
$this->config->getSystemValueInt('mail_smtpport', 25), |
|
|
|
|
$mailSmtpsecure, |
|
|
|
|
null, |
|
|
|
|
$this->logger |
|
|
|
|
@ -304,7 +303,7 @@ class Mailer implements IMailer { |
|
|
|
|
/** @psalm-suppress InternalMethod */ |
|
|
|
|
$stream->setTimeout($this->config->getSystemValue('mail_smtptimeout', 10)); |
|
|
|
|
|
|
|
|
|
if ($this->config->getSystemValue('mail_smtpauth', false)) { |
|
|
|
|
if ($this->config->getSystemValueBool('mail_smtpauth', false)) { |
|
|
|
|
$transport->setUsername($this->config->getSystemValue('mail_smtpname', '')); |
|
|
|
|
$transport->setPassword($this->config->getSystemValue('mail_smtppassword', '')); |
|
|
|
|
} |
|
|
|
|
@ -338,7 +337,7 @@ class Mailer implements IMailer { |
|
|
|
|
* @return SendmailTransport |
|
|
|
|
*/ |
|
|
|
|
protected function getSendMailInstance(): SendmailTransport { |
|
|
|
|
switch ($this->config->getSystemValue('mail_smtpmode', 'smtp')) { |
|
|
|
|
switch ($this->config->getSystemValueString('mail_smtpmode', 'smtp')) { |
|
|
|
|
case 'qmail': |
|
|
|
|
$binaryPath = '/var/qmail/bin/sendmail'; |
|
|
|
|
break; |
|
|
|
|
@ -351,7 +350,7 @@ class Mailer implements IMailer { |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
switch ($this->config->getSystemValue('mail_sendmailmode', 'smtp')) { |
|
|
|
|
switch ($this->config->getSystemValueString('mail_sendmailmode', 'smtp')) { |
|
|
|
|
case 'pipe': |
|
|
|
|
$binaryParam = ' -t'; |
|
|
|
|
break; |
|
|
|
|
|