Move "App::getSenderEmailAddress()" to "Emailer::getSiteEmailAddress()"

This commit is contained in:
nupplaPhil 2020-02-01 23:32:03 +01:00
parent 206b53477e
commit 0e13428210
No known key found for this signature in database
GPG key ID: D8365C3D36B77D90
5 changed files with 45 additions and 41 deletions

View file

@ -72,7 +72,7 @@ function notification($params)
$hostname = substr($hostname, 0, strpos($hostname, ':')); $hostname = substr($hostname, 0, strpos($hostname, ':'));
} }
$sender_email = $a->getSenderEmailAddress(); $sender_email = DI::emailer()->getSiteEmailAddress();
$user = DBA::selectFirst('user', ['nickname', 'page-flags'], $user = DBA::selectFirst('user', ['nickname', 'page-flags'],
['uid' => $params['uid']]); ['uid' => $params['uid']]);

View file

@ -242,27 +242,6 @@ class App
$this->baseURL->get(); $this->baseURL->get();
} }
/**
* Generates the site's default sender email address
*
* @return string
* @throws HTTPException\InternalServerErrorException
*/
public function getSenderEmailAddress()
{
$sender_email = $this->config->get('config', 'sender_email');
if (empty($sender_email)) {
$hostname = $this->baseURL->getHostname();
if (strpos($hostname, ':')) {
$hostname = substr($hostname, 0, strpos($hostname, ':'));
}
$sender_email = 'noreply@' . $hostname;
}
return $sender_email;
}
/** /**
* Returns the current theme name. May be overriden by the mobile theme name. * Returns the current theme name. May be overriden by the mobile theme name.
* *

View file

@ -77,7 +77,7 @@ class Invite extends BaseModule
} }
$additional_headers = 'From: ' . $app->user['email'] . "\n" $additional_headers = 'From: ' . $app->user['email'] . "\n"
. 'Sender: ' . $app->getSenderEmailAddress() . "\n" . 'Sender: ' . DI::emailer()->getSiteEmailAddress() . "\n"
. 'Content-type: text/plain; charset=UTF-8' . "\n" . 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit'; . 'Content-transfer-encoding: 8bit';

View file

@ -26,19 +26,18 @@ class SystemMailBuilder extends MailBuilder
/** @var string */ /** @var string */
protected $siteAdmin; protected $siteAdmin;
public function __construct(App $a, L10n $l10n, BaseURL $baseUrl, IConfig $config) public function __construct(L10n $l10n, BaseURL $baseUrl, IConfig $config, string $siteEmailAddress, string $siteName)
{ {
parent::__construct($l10n, $baseUrl, $config); parent::__construct($l10n, $baseUrl, $config);
$siteName = $this->config->get('config', 'sitename');
if ($this->config->get('config', 'admin_name')) { if ($this->config->get('config', 'admin_name')) {
$this->siteAdmin = $l10n->t('%1$s, %2$s Administrator', $this->config->get('config', 'admin_name'), $siteName); $this->siteAdmin = $l10n->t('%1$s, %2$s Administrator', $this->config->get('config', 'admin_name'), $siteName);
} else { } else {
$this->siteAdmin = $l10n->t('%s Administrator', $siteName); $this->siteAdmin = $l10n->t('%s Administrator', $siteName);
} }
$this->senderAddress = $a->getSenderEmailAddress(); // Set the system wide site address/name as sender (default for system mails)
$this->withSender($siteEmailAddress, $siteName);
} }
/** /**
@ -109,15 +108,4 @@ class SystemMailBuilder extends MailBuilder
'$textversion' => $textVersion, '$textversion' => $textVersion,
]); ]);
} }
/**
* {@inheritDoc}
*/
public function build(bool $raw = false)
{
// for system emails, always use the sitename/site address as the sender
$this->withSender($this->config->get('config', 'sitename'), $this->senderAddress);
return parent::build($raw);
}
} }

View file

@ -29,25 +29,62 @@ class Emailer
/** @var App\BaseURL */ /** @var App\BaseURL */
private $baseUrl; private $baseUrl;
/** @var string */
private $siteEmailAddress;
/** @var string */
private $siteEmailName;
public function __construct(IConfig $config, IPConfig $pConfig, App\BaseURL $baseURL, LoggerInterface $logger) public function __construct(IConfig $config, IPConfig $pConfig, App\BaseURL $baseURL, LoggerInterface $logger)
{ {
$this->config = $config; $this->config = $config;
$this->pConfig = $pConfig; $this->pConfig = $pConfig;
$this->logger = $logger; $this->logger = $logger;
$this->baseUrl = $baseURL; $this->baseUrl = $baseURL;
$this->siteEmailAddress = $this->config->get('config', 'sender_email');
if (empty($sysEmailAddress)) {
$hostname = $this->baseUrl->getHostname();
if (strpos($hostname, ':')) {
$hostname = substr($hostname, 0, strpos($hostname, ':'));
}
$this->siteEmailAddress = 'noreply@' . $hostname;
}
$this->siteEmailName = $this->config->get('config', 'sitename', 'Friendica Social Network');
}
/**
* Gets the site's default sender email address
*
* @return string
*/
public function getSiteEmailAddress()
{
return $this->siteEmailAddress;
}
/**
* Gets the site's default sender name
*
* @return string
*/
public function getSiteEmailName()
{
return $this->siteEmailName;
} }
/** /**
* Creates a new system email * Creates a new system email
* *
* @param App $a The Friendica app
* @param L10n $l10n The chosen language for the new email * @param L10n $l10n The chosen language for the new email
* *
* @return SystemMailBuilder * @return SystemMailBuilder
*/ */
public function newSystemMail(App $a, L10n $l10n) public function newSystemMail(L10n $l10n)
{ {
return new SystemMailBuilder($a, $l10n, $this->baseUrl, $this->config); return new SystemMailBuilder($l10n, $this->baseUrl, $this->config,
$this->getSiteEmailAddress(), $this->getSiteEmailName());
} }
/** /**