Merge pull request #39006 from nextcloud/backport/38958/stable26

[stable26] use getsystemvalue-functions in Mailer.php
This commit is contained in:
Simon L 2023-06-26 14:44:16 +02:00 committed by GitHub
commit 1d1f2e5aef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 16 deletions

View file

@ -293,8 +293,8 @@ class Mailer implements IMailer {
// either null or true - if nothing is passed, let the symfony mailer figure out the configuration by itself
$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->getSystemValueString('mail_smtphost', '127.0.0.1'),
$this->config->getSystemValueInt('mail_smtpport', 25),
$mailSmtpsecure,
null,
$this->logger
@ -302,11 +302,11 @@ class Mailer implements IMailer {
/** @var SocketStream $stream */
$stream = $transport->getStream();
/** @psalm-suppress InternalMethod */
$stream->setTimeout($this->config->getSystemValue('mail_smtptimeout', 10));
$stream->setTimeout($this->config->getSystemValueInt('mail_smtptimeout', 10));
if ($this->config->getSystemValue('mail_smtpauth', false)) {
$transport->setUsername($this->config->getSystemValue('mail_smtpname', ''));
$transport->setPassword($this->config->getSystemValue('mail_smtppassword', ''));
if ($this->config->getSystemValueBool('mail_smtpauth', false)) {
$transport->setUsername($this->config->getSystemValueString('mail_smtpname', ''));
$transport->setPassword($this->config->getSystemValueString('mail_smtppassword', ''));
}
$streamingOptions = $this->config->getSystemValue('mail_smtpstreamoptions', []);

View file

@ -239,9 +239,16 @@ class MailerTest extends TestCase {
public function testStreamingOptions() {
$this->config->method('getSystemValue')
->willReturnMap([
['mail_smtpmode', 'smtp', 'smtp'],
['mail_smtpstreamoptions', [], ['foo' => 1]],
]);
$this->config->method('getSystemValueString')
->willReturnMap([
['mail_smtpmode', 'smtp', 'smtp'],
['overwrite.cli.url', '', ''],
['mail_smtphost', '127.0.0.1', '127.0.0.1'],
]);
$this->config->method('getSystemValueInt')
->willReturnMap([
['mail_smtpport', 25, 25],
['mail_smtptimeout', 10, 10],
]);
@ -256,12 +263,20 @@ class MailerTest extends TestCase {
public function testStreamingOptionsWrongType() {
$this->config->method('getSystemValue')
->willReturnMap([
['mail_smtpmode', 'smtp', 'smtp'],
['mail_smtpstreamoptions', [], 'bar'],
]);
$this->config->method('getSystemValueString')
->willReturnMap([
['mail_smtpmode', 'smtp', 'smtp'],
['overwrite.cli.url', '', ''],
['mail_smtphost', '127.0.0.1', '127.0.0.1'],
]);
$this->config->method('getSystemValueInt')
->willReturnMap([
['mail_smtpport', 25, 25],
['mail_smtptimeout', 10, 10],
]);
$mailer = self::invokePrivate($this->mailer, 'getInstance');
/** @var EsmtpTransport $transport */
$transport = self::invokePrivate($mailer, 'transport');
@ -270,16 +285,17 @@ class MailerTest extends TestCase {
}
public function testLocalDomain(): void {
$this->config->method('getSystemValue')
$this->config->method('getSystemValueString')
->willReturnMap([
['mail_smtpmode', 'smtp', 'smtp'],
['overwrite.cli.url', '', 'https://some.valid.url.com:8080'],
['mail_smtphost', '127.0.0.1', '127.0.0.1'],
]);
$this->config->method('getSystemValueInt')
->willReturnMap([
['mail_smtpport', 25, 25],
['mail_smtptimeout', 10, 10],
]);
$this->config->method('getSystemValueString')
->with('overwrite.cli.url', '')
->willReturn('https://some.valid.url.com:8080');
/** @var SymfonyMailer $mailer */
$mailer = self::invokePrivate($this->mailer, 'getInstance');
@ -292,16 +308,17 @@ class MailerTest extends TestCase {
}
public function testLocalDomainInvalidUrl(): void {
$this->config->method('getSystemValue')
$this->config->method('getSystemValueString')
->willReturnMap([
['mail_smtpmode', 'smtp', 'smtp'],
['overwrite.cli.url', '', 'https:only.slash.does.not.work:8080'],
['mail_smtphost', '127.0.0.1', '127.0.0.1'],
]);
$this->config->method('getSystemValueInt')
->willReturnMap([
['mail_smtpport', 25, 25],
['mail_smtptimeout', 10, 10],
]);
$this->config->method('getSystemValueString')
->with('overwrite.cli.url', '')
->willReturn('https:only.slash.does.not.work:8080');
/** @var SymfonyMailer $mailer */
$mailer = self::invokePrivate($this->mailer, 'getInstance');