Login Name: %3$s', $resetlink, DI::baseUrl(), $user['nickname']));
$email = DI::emailer()
- ->newSystemMail((!empty($user['language'])) ? DI::l10n()->withLang($user['language']) : DI::l10n())
+ ->newSystemMail()
->withMessage(DI::l10n()->t('Password reset requested at %s', $sitename), $preamble, $body)
- ->forUser($user['uid'] ?? 0)
+ ->forUser($user)
->withRecipient($user['email'])
->build();
', DI::baseUrl(), $user['nickname'], $new_password));
$email = DI::emailer()
- ->newSystemMail((!empty($user['language'])) ? DI::l10n()->withLang($user['language']) : DI::l10n())
+ ->newSystemMail()
->withMessage(DI::l10n()->t('Your password has been changed at %s', $sitename), $preamble, $body)
- ->forUser($user['uid'] ?? 0)
+ ->forUser($user)
->withRecipient($user['email'])
->build();
DI::emailer()->send($email);
}
$email = DI::emailer()
- ->newSystemMail((!empty($admin['language'])) ? DI::l10n()->withLang($admin['language']) : DI::l10n()->withLang('en'))
+ ->newSystemMail()
->withMessage(
DI::l10n()->t('[Friendica System Notify]') . ' ' . DI::l10n()->t('User deleted their account'),
DI::l10n()->t('On your Friendica node an user deleted their account. Please ensure that their data is removed from the backups.'),
DI::l10n()->t('The user id is %d', local_user()))
- ->forUser($admin['uid'] ?? 0)
+ ->forUser($admin)
->withRecipient($admin['email'])
->build();
DI::emailer()->send($email);
$body = $l10n->t("The error message is\n[pre]%s[/pre]", $error_message);
$email = DI::emailer()
- ->newSystemMail($l10n)
+ ->newSystemMail()
->withMessage($l10n->t('[Friendica Notify] Database update'), $preamble, $body)
- ->forUser($admin['uid'] ?? 0)
+ ->forUser($admin)
->withRecipient($admin['email'])
->build();
DI::emailer()->send($email);
$from_build, $to_build));
$email = DI::emailer()
- ->newSystemMail($l10n)
+ ->newSystemMail()
->withMessage($l10n->t('[Friendica Notify] Database update'), $preamble)
- ->forUser($admin['uid'] ?? 0)
+ ->forUser($admin)
->withRecipient($admin['email'])
->build();
DI::emailer()->send($email);
));
$email = DI::emailer()
- ->newSystemMail(DI::l10n())
+ ->newSystemMail()
->withMessage(DI::l10n()->t('Registration at %s', $sitename), $body)
- ->forUser($user['uid'] ?? 0)
+ ->forUser($user)
->withRecipient($user['email'])
->build();
return DI::emailer()->send($email);
));
$email = DI::emailer()
- ->newSystemMail($l10n)
+ ->newSystemMail()
->withMessage(DI::l10n()->t('Registration details for %s', $sitename), $preamble, $body)
- ->forUser($user['uid'] ?? 0)
+ ->forUser($user)
->withRecipient($user['email'])
->build();
return DI::emailer()->send($email);
$body = sprintf($body, DI::baseUrl()->get(), $user['nickname'], $result['password'], DI::config()->get('config', 'sitename'));
$email = DI::emailer()
- ->newSystemMail((!empty($user['language'])) ? DI::l10n()->withLang($user['language']) : DI::l10n())
+ ->newSystemMail()
->withMessage(DI::l10n()->t('Registration details for %s', DI::config()->get('config', 'sitename')), $preamble, $body)
- ->forUser($user['uid'] ?? 0)
+ ->forUser($user)
->withRecipient($user['email'])
->build();
return DI::emailer()->send($email);
/**
* Adds the User ID to the email in case the mail sending needs additional properties of this user
*
- * @param int $uid The User ID
+ * @todo Once the user array is replaced with a user entity, replace this array parameter as well
+ * @param array $user The user entity/array, for which the email should be sent
*
* @return static
*/
- public function forUser(int $uid)
+ public function forUser(array $user)
{
- $this->recipientUid = $uid;
+ $this->recipientUid = $user['uid'] ?? 0;
+ try {
+ $this->l10n = $user['language'] ? $this->l10n->withLang($user['language']) : $this->l10n;
+ } catch (Exception $e) {
+ }
return $this;
}
private $logger;
/** @var App\BaseURL */
private $baseUrl;
+ /** @var L10n */
+ private $l10n;
/** @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,
+ L10n $defaultLang)
{
$this->config = $config;
$this->pConfig = $pConfig;
$this->logger = $logger;
$this->baseUrl = $baseURL;
+ $this->l10n = $defaultLang;
$this->siteEmailAddress = $this->config->get('config', 'sender_email');
if (empty($sysEmailAddress)) {
/**
* Creates a new system email
*
- * @param L10n $l10n The chosen language for the new email
- *
* @return SystemMailBuilder
*/
- public function newSystemMail(L10n $l10n)
+ public function newSystemMail()
{
- return new SystemMailBuilder($l10n, $this->baseUrl, $this->config,
+ return new SystemMailBuilder($this->l10n, $this->baseUrl, $this->config,
$this->getSiteEmailAddress(), $this->getSiteEmailName());
}
->withMessage('Subject', 'Html', 'text')
->withRecipient('recipient@friendica.local')
->withSender('Sender', 'sender@friendica.local', 'no-reply@friendica.local')
- ->forUser(100)
+ ->forUser(['uid' => 100])
->build(true);
$this->assertEmail($testEmail, [