<?php
/**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
namespace Friendica\Util\EMailer;
use Exception;
+use Friendica\App;
use Friendica\App\BaseURL;
-use Friendica\Core\Config\IConfig;
+use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Model\User;
-use Friendica\Network\HTTPException\InternalServerErrorException;
+use Friendica\Network\HTTPException\UnprocessableEntityException;
use Friendica\Object\Email;
use Friendica\Object\EMail\IEmail;
use Psr\Log\LoggerInterface;
/** @var L10n */
protected $l10n;
- /** @var IConfig */
+ /** @var IManageConfigValues */
protected $config;
/** @var BaseURL */
protected $baseUrl;
/** @var int */
protected $recipientUid = null;
- public function __construct(L10n $l10n, BaseURL $baseUrl, IConfig $config, LoggerInterface $logger)
+ public function __construct(L10n $l10n, BaseURL $baseUrl, IManageConfigValues $config, LoggerInterface $logger)
{
$this->l10n = $l10n;
$this->baseUrl = $baseUrl;
$this->config = $config;
$this->logger = $logger;
- $hostname = $baseUrl->getHostname();
+ $hostname = $baseUrl->getHost();
if (strpos($hostname, ':')) {
$hostname = substr($hostname, 0, strpos($hostname, ':'));
}
$this->headers = [
'Precedence' => ['list'],
'X-Friendica-Host' => [$hostname],
- 'X-Friendica-Platform' => [FRIENDICA_PLATFORM],
- 'X-Friendica-Version' => [FRIENDICA_VERSION],
+ 'X-Friendica-Platform' => [App::PLATFORM],
+ 'X-Friendica-Version' => [App::VERSION],
'List-ID' => ['<notification.' . $hostname . '>'],
- 'List-Archive' => ['<' . $baseUrl->get() . '/notifications/system>'],
+ 'List-Archive' => ['<' . $baseUrl . '/notifications/system>'],
];
}
{
$this->recipientUid = $user['uid'] ?? 0;
try {
- $this->l10n = $user['language'] ? $this->l10n->withLang($user['language']) : $this->l10n;
+ $this->l10n = isset($user['language']) ? $this->l10n->withLang($user['language']) : $this->l10n;
} catch (Exception $e) {
$this->logger->warning('cannot use language.', ['user' => $user, 'exception' => $e]);
}
*
* @return string[][]
*/
- public function getHeaders()
+ public function getHeaders(): array
{
return $this->headers;
}
* @param string[][] $headers
* @return $this
*/
- public function withHeaders(array $headers)
+ public function withHeaders(array $headers): MailBuilder
{
$this->headers = $headers;
*
* @return IEmail A new generated email
*
- * @throws InternalServerErrorException
+ * @throws UnprocessableEntityException
* @throws Exception
*/
public function build(bool $raw = false)
}
if (empty($this->recipientAddress)) {
- throw new InternalServerErrorException('Recipient address is missing.');
+ throw new UnprocessableEntityException('Recipient address is missing.');
}
if (empty($this->senderAddress) || empty($this->senderName)) {
- throw new InternalServerErrorException('Sender address or name is missing.');
+ throw new UnprocessableEntityException('Sender address or name is missing.');
}
$this->senderNoReply = $this->senderNoReply ?? $this->senderAddress;
$tpl = Renderer::getMarkupTemplate('email/html.tpl');
$msgHtml = Renderer::replaceMacros($tpl, [
'$title' => $this->l10n->t('Friendica Notification'),
- '$product' => FRIENDICA_PLATFORM,
+ '$product' => App::PLATFORM,
'$htmlversion' => $msgHtml,
'$sitename' => $this->config->get('config', 'sitename'),
'$banner' => $this->config->get('system', 'email_banner',
- $this->baseUrl->get(true) . DIRECTORY_SEPARATOR . self::DEFAULT_EMAIL_BANNER),
+ $this->baseUrl . DIRECTORY_SEPARATOR . self::DEFAULT_EMAIL_BANNER),
]);
}