X-Git-Url: https://git-public.kairo.at/?p=php-utility-classes.git;a=blobdiff_plain;f=include%2Fclasses%2Femail.php-class;h=2de9ca4e67015145c556ca14cf81ca081fa38bf3;hp=a2defcecfdf0720e51739e4f108ab746fee3841c;hb=43bc07b3ee51f7d3f5ecd783b8195da26cc43f03;hpb=1b1735d1af257179f690aa1f84621f37075cf874 diff --git a/include/classes/email.php-class b/include/classes/email.php-class old mode 100755 new mode 100644 index a2defce..2de9ca4 --- a/include/classes/email.php-class +++ b/include/classes/email.php-class @@ -102,6 +102,12 @@ class email { // public function addAttachment($aname, $acontent, [$atype]) // add an attachment to the mail, use given file name, content and MIME type (defaults to application/octet-stream) // + // public function getAddresses([$addrtype]) + // returns an array of all addresses this mail gets sent to + // fields: email, name, addrtype + // addrtype is one of to/cc/bcc + // the $addrtype parameter is a comma-separated list of such types, default: all of them + // // public function send() // really send the mail // @@ -164,6 +170,45 @@ class email { $this->attachments[] = array('name' => $aname, 'content' => $acontent, 'type' => $atype); } + public function getAddresses($addrtype = null) { + // returns all addresses this mail gets sent to + if (!is_array($addrtype)) { + if (strlen($addrtype)) { $addrtype = explode(',', strtolower($addrtype)); } + else { $addrtype = array('to','cc','bcc'); } + } + $mailaddresses = array(); + + if (in_array('to', $addrtype)) { + foreach ($this->recipients as $address) { + if (strlen(@$address['mail'])) { + $mailaddresses[] = array('mail'=>$address['mail'], + 'name'=>strlen($address['name'])?$address['name']:'', + 'addrtype'=>'to'); + } + } + } + if (in_array('cc', $addrtype)) { + foreach ($this->cc as $address) { + if (strlen(@$address['mail'])) { + $mailaddresses[] = array('mail'=>$address['mail'], + 'name'=>strlen($address['name'])?$address['name']:'', + 'addrtype'=>'cc'); + } + } + } + if (in_array('bcc', $addrtype)) { + foreach ($this->bcc as $address) { + if (strlen(@$address['mail'])) { + $mailaddresses[] = array('mail'=>$address['mail'], + 'name'=>strlen($address['name'])?$address['name']:'', + 'addrtype'=>'bcc'); + } + } + } + + return $mailaddresses; + } + public function send() { global $util; $mtxt = ''; @@ -182,11 +227,16 @@ class email { if (count($this->recipients)) { $recpt = ''; foreach ($this->recipients as $address) { - if (strlen($address['name'])) { $recpt .= $this->mimeencode($address['name'], true).' <'.$address['mail'].'>,'; } - else { $recpt .= $address['mail'].','; } + if (strlen(@$address['mail'])) { + if (strlen($address['name'])) { $recpt .= $this->mimeencode($address['name'], true).' <'.$address['mail'].'>,'; } + else { $recpt .= $address['mail'].','; } + } } $recpt = preg_replace('/,$/', '', $recpt); } + if (!strlen($recpt)) { + return null; + } if (count($this->cc)) { $adrs = ''; foreach ($this->cc as $address) { @@ -288,7 +338,5 @@ class email { } return $mText; } - - } ?>