diff --git a/notifyall/NotifyAllEMail.php b/notifyall/NotifyAllEMail.php
new file mode 100644
index 00000000..eeca4faf
--- /dev/null
+++ b/notifyall/NotifyAllEMail.php
@@ -0,0 +1,40 @@
+get('config', 'sitename');
+
+ if (empty($config->get('config', 'admin_name'))) {
+ $sender_name = '"' . $l10n->t('%s Administrator', $sitename) . '"';
+ } else {
+ $sender_name = '"' . $l10n->t('%1$s, %2$s Administrator', $config->get('config', 'admin_name'), $sitename) . '"';
+ }
+
+ if (!$config->get('config', 'sender_email')) {
+ $sender_email = 'noreply@' . $baseUrl->getHostname();
+ } else {
+ $sender_email = $config->get('config', 'sender_email');
+ }
+
+ $subject = $_REQUEST['subject'];
+
+ $textversion = strip_tags(html_entity_decode(BBCode::convert(stripslashes(str_replace(["\\r", "\\n"], ["", "\n"], $text))), ENT_QUOTES, 'UTF-8'));
+
+ $htmlversion = BBCode::convert(stripslashes(str_replace(["\\r", "\\n"], ["", "
\n"], $text)));
+
+ parent::__construct($sender_name, $sender_email, $sender_email, '', $subject, $htmlversion, $textversion);
+ }
+}
diff --git a/notifyall/notifyall.php b/notifyall/notifyall.php
index 2190a9d1..c2391fcc 100644
--- a/notifyall/notifyall.php
+++ b/notifyall/notifyall.php
@@ -8,12 +8,12 @@
* Author: Rabuzarus (Port to Friendica)
*/
+use Friendica\Addon\notifyall\NotifyAllEMail;
use Friendica\App;
-use Friendica\Content\Text\BBCode;
+use Friendica\Database\DBA;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\DI;
-use Friendica\Util\Emailer;
function notifyall_install()
{
@@ -45,27 +45,6 @@ function notifyall_post(App $a)
return;
}
- $sitename = DI::config()->get('config', 'sitename');
-
- if (empty(DI::config()->get('config', 'admin_name'))) {
- $sender_name = '"' . DI::l10n()->t('%s Administrator', $sitename) . '"';
- } else {
- $sender_name = '"' . DI::l10n()->t('%1$s, %2$s Administrator', DI::config()->get('config', 'admin_name'), $sitename) . '"';
- }
-
- if (!DI::config()->get('config', 'sender_email')) {
- $sender_email = 'noreply@' . DI::baseUrl()->getHostname();
- } else {
- $sender_email = DI::config()->get('config', 'sender_email');
- }
-
- $subject = $_REQUEST['subject'];
-
-
- $textversion = strip_tags(html_entity_decode(BBCode::convert(stripslashes(str_replace(["\\r", "\\n"], ["", "\n"], $text))), ENT_QUOTES, 'UTF-8'));
-
- $htmlversion = BBCode::convert(stripslashes(str_replace(["\\r", "\\n"], ["", "
\n"], $text)));
-
// if this is a test, send it only to the admin(s)
// admin_email might be a comma separated list, but we need "a@b','c@d','e@f
if (intval($_REQUEST['test'])) {
@@ -74,15 +53,17 @@ function notifyall_post(App $a)
}
$sql_extra = ((intval($_REQUEST['test'])) ? sprintf(" AND `email` in ( %s )", $email) : '');
- $recips = q("SELECT DISTINCT `email` FROM `user` WHERE `verified` AND NOT `account_removed` AND NOT `account_expired` $sql_extra");
+ $recipients = DBA::p("SELECT DISTINCT `email` FROM `user` WHERE `verified` AND NOT `account_removed` AND NOT `account_expired` $sql_extra");
- if (! $recips) {
+ if (! $recipients) {
notice(DI::l10n()->t('No recipients found.') . EOL);
return;
}
- foreach ($recips as $recip) {
- DI::emailer()->send($sender_name, $sender_email, $sender_email, $recip['email'], $subject, $htmlversion, $textversion);
+ $notifyEmail = new NotifyAllEMail(DI::l10n(), DI::config(), DI::baseUrl(), $text);
+
+ foreach ($recipients as $recipient) {
+ DI::emailer()->send($notifyEmail->withRecipient($recipient['email']));
}
notice(DI::l10n()->t('Emails sent'));
@@ -92,7 +73,7 @@ function notifyall_post(App $a)
function notifyall_content(&$a)
{
if (! is_site_admin()) {
- return;
+ return '';
}
$title = DI::l10n()->t('Send email to all members of this Friendica instance.');
diff --git a/securemail/SecureTestEMail.php b/securemail/SecureTestEMail.php
new file mode 100644
index 00000000..d7f9a296
--- /dev/null
+++ b/securemail/SecureTestEMail.php
@@ -0,0 +1,40 @@
+get('config', 'sitename');
+
+ $hostname = $baseUrl->getHostname();
+ if (strpos($hostname, ':')) {
+ $hostname = substr($hostname, 0, strpos($hostname, ':'));
+ }
+
+ $sender_email = $config->get('config', 'sender_email');
+ if (empty($sender_email)) {
+ $sender_email = 'noreply@' . $hostname;
+ }
+
+ $subject = 'Friendica - Secure Mail - Test';
+ $message = 'This is a test message from your Friendica Secure Mail addon.';
+
+ // enable addon for test
+ $pConfig->set(local_user(), 'securemail', 'enable', 1);
+
+ parent::__construct($sitename, $sender_email, $sender_email, $a->user['email'],
+ $subject, "{$message}
", $message,
+ '', local_user());
+ }
+}
diff --git a/securemail/securemail.php b/securemail/securemail.php
index 1f7cd768..e25e9669 100644
--- a/securemail/securemail.php
+++ b/securemail/securemail.php
@@ -6,12 +6,12 @@
* Author: Fabio Comuni
*/
+use Friendica\Addon\securemail\SecureTestEMail;
use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\DI;
-use Friendica\Util\Emailer;
require_once __DIR__ . '/vendor/autoload.php';
@@ -88,27 +88,8 @@ function securemail_settings_post(App &$a, array &$b)
info(DI::l10n()->t('Secure Mail Settings saved.') . EOL);
if ($_POST['securemail-submit'] == DI::l10n()->t('Save and send test')) {
- $sitename = DI::config()->get('config', 'sitename');
- $hostname = DI::baseUrl()->getHostname();
- if (strpos($hostname, ':')) {
- $hostname = substr($hostname, 0, strpos($hostname, ':'));
- }
-
- $sender_email = DI::config()->get('config', 'sender_email');
- if (empty($sender_email)) {
- $sender_email = 'noreply@' . $hostname;
- }
-
- $subject = 'Friendica - Secure Mail - Test';
- $message = 'This is a test message from your Friendica Secure Mail addon.';
-
- // enable addon for test
- DI::pConfig()->set(local_user(), 'securemail', 'enable', 1);
-
- $res = DI::emailer()->send($sitename, $sender_email, $sender_email,
- $a->user['email'], $subject, "{$message}
", $message,
- '', local_user());
+ $res = DI::emailer()->send(new SecureTestEMail(DI::app(), DI::config(), DI::pConfig(), DI::baseUrl()));
// revert to saved value
DI::pConfig()->set(local_user(), 'securemail', 'enable', $enable);