--- /dev/null
+<?php
+
+namespace Friendica\Addon\notifyall;
+
+use Friendica\App\BaseURL;
+use Friendica\Content\Text\BBCode;
+use Friendica\Core\Config\IConfig;
+use Friendica\Core\L10n;
+use Friendica\Object\EMail;
+
+/**
+ * Class for creating a Notify-All EMail
+ */
+class NotifyAllEMail extends EMail
+{
+ public function __construct(L10n $l10n, IConfig $config, BaseURL $baseUrl, string $text)
+ {
+ $sitename = $config->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"], ["", "<br />\n"], $text)));
+
+ parent::__construct($sender_name, $sender_email, $sender_email, '', $subject, $htmlversion, $textversion);
+ }
+}
* Author: Rabuzarus <https://friendica.kommune4.de/profile/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()
{
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"], ["", "<br />\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'])) {
}
$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'));
function notifyall_content(&$a)
{
if (! is_site_admin()) {
- return;
+ return '';
}
$title = DI::l10n()->t('Send email to all members of this Friendica instance.');
--- /dev/null
+<?php
+
+namespace Friendica\Addon\securemail;
+
+use Friendica\App;
+use Friendica\App\BaseURL;
+use Friendica\Core\Config\IConfig;
+use Friendica\Core\PConfig\IPConfig;
+use Friendica\Object\EMail;
+
+/**
+ * Class for creating a Test email for the securemail addon
+ */
+class SecureTestEMail extends EMail
+{
+ public function __construct(App $a, IConfig $config, IPConfig $pConfig, BaseURL $baseUrl)
+ {
+ $sitename = $config->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, "<p>{$message}</p>", $message,
+ '', local_user());
+ }
+}
* Author: Fabio Comuni <http://kirgroup.com/profile/fabrixxm>
*/
+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';
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, "<p>{$message}</p>", $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);