From a04c09ff2ce3bcd88c7600b3785ea19f8dba1823 Mon Sep 17 00:00:00 2001 From: Robert Kaiser Date: Fri, 4 Jan 2008 22:36:46 +0100 Subject: [PATCH] handle problematic ('bad') addresses with a bounce watch table; for this, add a function to the email module for retrieving all addresses used in a mail; also fix long-standing RFE for killing PMs that are deleted on both sides --- include/classes/email.php-class | 41 +++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/include/classes/email.php-class b/include/classes/email.php-class index c7e1ee4..0c485fe 100755 --- 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,41 @@ class email { $this->attachments[] = array('name' => $aname, 'content' => $acontent, 'type' => $atype); } + public function getAddresses($addrtype = null) { + // returns all addresses this mail gets sent to + $addrtype = explode(',', strtolower($addrtype)); + if (!is_array($addrtype)) { $addrtype = array('to','cc','bcc'); } + $mailaddresses = array(); + + if (in_array($addrtype, 'to')) { + 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($addrtype, 'cc')) { + 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($addrtype, 'bcc')) { + foreach ($this->bcc as $address) { + if (strlen(@$address['mail'])) { + $mailaddresses[] = array('mail'=>$address['mail'], + 'name'=>strlen($address['name'])?$address['name']:'', + 'addrtype'=>'bcc'); + } + } + } + } + public function send() { global $util; $mtxt = ''; -- 2.35.3