From b59f2fab4958fed93a3e875058b0e0400ef64035 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Tue, 6 Sep 2016 13:37:26 +0200 Subject: [PATCH 1/3] if a sender_email for the system is set, use this, else use noreply@... --- notifyall/notifyall.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/notifyall/notifyall.php b/notifyall/notifyall.php index e33c9181..cfd2c928 100644 --- a/notifyall/notifyall.php +++ b/notifyall/notifyall.php @@ -43,7 +43,10 @@ function notifyall_post(&$a) { else $sender_name = sprintf(t('%1$s, %2$s Administrator'), $a->config['admin_name'], $sitename); - $sender_email = 'sys@' . $a->get_hostname(); + if (! x($a->config['sender_email'])) + $sender_email = 'noreply@' . $a->get_hostname(); + else + $sender_email = $a->config['sender_email']; $subject = $_REQUEST['subject']; From 08546e30f997360e08e0c7d8730842eede6cbf48 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Tue, 6 Sep 2016 15:00:07 +0200 Subject: [PATCH 2/3] send mail to admin(s) in test more --- notifyall/notifyall.php | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/notifyall/notifyall.php b/notifyall/notifyall.php index cfd2c928..2f47838f 100644 --- a/notifyall/notifyall.php +++ b/notifyall/notifyall.php @@ -42,20 +42,26 @@ function notifyall_post(&$a) { $sender_name = sprintf(t('%s Administrator'), $sitename); else $sender_name = sprintf(t('%1$s, %2$s Administrator'), $a->config['admin_name'], $sitename); + + if (! x($a->config['sender_email'])) + $sender_email = 'noreply@' . $a->get_hostname(); + else + $sender_email = $a->config['sender_email']; - if (! x($a->config['sender_email'])) - $sender_email = 'noreply@' . $a->get_hostname(); - else - $sender_email = $a->config['sender_email']; $subject = $_REQUEST['subject']; $textversion = strip_tags(html_entity_decode(bbcode(stripslashes(str_replace(array("\\r", "\\n"),array( "", "\n"), $text))),ENT_QUOTES,'UTF-8')); $htmlversion = bbcode(stripslashes(str_replace(array("\\r","\\n"), array("","
\n"),$text))); - - $sql_extra = ((intval($_REQUEST['test'])) ? sprintf(" AND `email` = '%s' ", get_config('system','admin_email')) : ''); - + + // 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'])) { + $email = $a->config['admin_email']; + $email = "'" . str_replace(array(" ",","), array("","','"), $email) . "'"; + } + $sql_extra = ((intval($_REQUEST['test'])) ? sprintf(" AND `email` in ( %s )", $email) : ''); $recips = q("SELECT `email` FROM `user` WHERE `verified` AND NOT `account_removed` AND NOT `account_expired` $sql_extra"); From 9f845beffd0e3d54d3c0846d879c99f4a271b791 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Fri, 9 Sep 2016 11:01:37 +0200 Subject: [PATCH 3/3] when more then one users have the same email, only send the notification once --- notifyall/notifyall.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notifyall/notifyall.php b/notifyall/notifyall.php index 2f47838f..3f2cdc89 100644 --- a/notifyall/notifyall.php +++ b/notifyall/notifyall.php @@ -63,7 +63,7 @@ function notifyall_post(&$a) { } $sql_extra = ((intval($_REQUEST['test'])) ? sprintf(" AND `email` in ( %s )", $email) : ''); - $recips = q("SELECT `email` FROM `user` WHERE `verified` AND NOT `account_removed` AND NOT `account_expired` $sql_extra"); + $recips = q("SELECT DISTINCT `email` FROM `user` WHERE `verified` AND NOT `account_removed` AND NOT `account_expired` $sql_extra"); if(! $recips) { notice( t('No recipients found.') . EOL);