1*5187ba70SAnna Dabrowska<?php 2*5187ba70SAnna Dabrowska 3*5187ba70SAnna Dabrowskause dokuwiki\Extension\AuthPlugin; 4*5187ba70SAnna Dabrowska 5*5187ba70SAnna Dabrowska/** 6*5187ba70SAnna Dabrowska * Mail helper 7*5187ba70SAnna Dabrowska */ 8*5187ba70SAnna Dabrowskaclass helper_plugin_recommend_mail extends DokuWiki_Plugin 9*5187ba70SAnna Dabrowska{ 10*5187ba70SAnna Dabrowska /** 11*5187ba70SAnna Dabrowska * @param string $recipient 12*5187ba70SAnna Dabrowska * @param string $mailtext 13*5187ba70SAnna Dabrowska * @param string $sender 14*5187ba70SAnna Dabrowska * @return void 15*5187ba70SAnna Dabrowska */ 16*5187ba70SAnna Dabrowska public function sendMail($recipient, $mailtext, $sender) 17*5187ba70SAnna Dabrowska { 18*5187ba70SAnna Dabrowska global $INPUT; 19*5187ba70SAnna Dabrowska 20*5187ba70SAnna Dabrowska $mailer = new Mailer(); 21*5187ba70SAnna Dabrowska $mailer->bcc($recipient); 22*5187ba70SAnna Dabrowska $mailer->from($sender); 23*5187ba70SAnna Dabrowska 24*5187ba70SAnna Dabrowska $subject = $INPUT->str('subject'); 25*5187ba70SAnna Dabrowska $mailer->subject($subject); 26*5187ba70SAnna Dabrowska $mailer->setBody($mailtext); 27*5187ba70SAnna Dabrowska $mailer->send(); 28*5187ba70SAnna Dabrowska } 29*5187ba70SAnna Dabrowska 30*5187ba70SAnna Dabrowska /** 31*5187ba70SAnna Dabrowska * Processes recipients from input and returns an array of emails 32*5187ba70SAnna Dabrowska * with user groups resolved to individual users 33*5187ba70SAnna Dabrowska * 34*5187ba70SAnna Dabrowska * @param string $recipients 35*5187ba70SAnna Dabrowska * @return array 36*5187ba70SAnna Dabrowska * @throws Exception 37*5187ba70SAnna Dabrowska */ 38*5187ba70SAnna Dabrowska public function resolveRecipients($recipients) 39*5187ba70SAnna Dabrowska { 40*5187ba70SAnna Dabrowska $resolved = []; 41*5187ba70SAnna Dabrowska 42*5187ba70SAnna Dabrowska $recipients = explode(',', $recipients); 43*5187ba70SAnna Dabrowska 44*5187ba70SAnna Dabrowska /** @var AuthPlugin $auth */ 45*5187ba70SAnna Dabrowska global $auth; 46*5187ba70SAnna Dabrowska 47*5187ba70SAnna Dabrowska foreach ($recipients as $recipient) { 48*5187ba70SAnna Dabrowska $recipient = trim($recipient); 49*5187ba70SAnna Dabrowska 50*5187ba70SAnna Dabrowska if ($recipient[0] === '@') { 51*5187ba70SAnna Dabrowska $users = $auth->retrieveUsers(0, 0, ['grps' => substr($recipient, 1)]); 52*5187ba70SAnna Dabrowska foreach ($users as $user) { 53*5187ba70SAnna Dabrowska $resolved[] = $user['mail']; 54*5187ba70SAnna Dabrowska } 55*5187ba70SAnna Dabrowska } else { 56*5187ba70SAnna Dabrowska if (!mail_isvalid($recipient)) { 57*5187ba70SAnna Dabrowska throw new \Exception($this->getLang('err_recipient')); 58*5187ba70SAnna Dabrowska } 59*5187ba70SAnna Dabrowska $resolved[] = $recipient; 60*5187ba70SAnna Dabrowska } 61*5187ba70SAnna Dabrowska } 62*5187ba70SAnna Dabrowska return $resolved; 63*5187ba70SAnna Dabrowska } 64*5187ba70SAnna Dabrowska} 65