Commit 58939e1ffeae1828efb0bb9195ea516f47a30a75

Authored by Michael Joseph
1 parent 776b9b6c

#3500 refactored email code to use either a single email address or an array of them


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@2804 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 31 additions and 23 deletions
lib/email/Email.inc
@@ -49,7 +49,7 @@ class Email { @@ -49,7 +49,7 @@ class Email {
49 $this->oMailer->WordWrap = 100; 49 $this->oMailer->WordWrap = 100;
50 $this->oMailer->IsHTML(true); 50 $this->oMailer->IsHTML(true);
51 } 51 }
52 - 52 +
53 /** 53 /**
54 * Sends an email to a specified recipient. 54 * Sends an email to a specified recipient.
55 * 55 *
@@ -60,34 +60,42 @@ class Email { @@ -60,34 +60,42 @@ class Email {
60 * @param string the sender's name (optional) 60 * @param string the sender's name (optional)
61 * @return boolean true on email successfully sent, false otherwise and set $_SESSION["errorMessage"] 61 * @return boolean true on email successfully sent, false otherwise and set $_SESSION["errorMessage"]
62 */ 62 */
63 - function send($sToEmail, $sSubject, $sBody, $sFromEmail = "", $sFromName = "") { 63 + function send($mToEmail, $sSubject, $sBody, $sFromEmail = "", $sFromName = "") {
64 global $default, $lang_err_email; 64 global $default, $lang_err_email;
65 65
66 - if (strlen($sToEmail) > 0) {  
67 - // set defaults for optional params  
68 - $sFromEmail = ((strlen($sFromEmail) == 0) || ($sFromEmail == "")) ? $default->system->get("emailFrom") : $sFromEmail;  
69 - $sFromName = ((strlen($sFromName) == 0) || ($sFromName == "")) ? $default->system->get("emailFromName") : $sFromName;  
70 -  
71 - // set optional params  
72 - if ((strlen($sFromEmail) > 0) && ($sFromEmail != "")) {  
73 - $this->oMailer->From = $sFromEmail;  
74 - }  
75 - if ((strlen($sFromName) > 0) && ($sFromName != "")) {  
76 - $this->oMailer->FromName = $sFromName;  
77 - }  
78 -  
79 - // if there are multiple addresses (; separated) 66 + // set defaults for optional params
  67 + $sFromEmail = ((strlen($sFromEmail) == 0) || ($sFromEmail == "")) ? $default->system->get("emailFrom") : $sFromEmail;
  68 + $sFromName = ((strlen($sFromName) == 0) || ($sFromName == "")) ? $default->system->get("emailFromName") : $sFromName;
  69 +
  70 + // set optional params
  71 + if ((strlen($sFromEmail) > 0) && ($sFromEmail != "")) {
  72 + $this->oMailer->From = $sFromEmail;
  73 + }
  74 + if ((strlen($sFromName) > 0) && ($sFromName != "")) {
  75 + $this->oMailer->FromName = $sFromName;
  76 + }
  77 +
  78 + if ( (is_string($mToEmail) && (strlen($mToEmail) > 0)) ||
  79 + (is_array($mToEmail) && (count($mToEmail) > 0)) ) {
  80 +
80 $aEmailAddresses = array(); 81 $aEmailAddresses = array();
81 - if (strpos($sToEmail, ";") > 0) {  
82 - // explode them  
83 - $aEmailAddresses = explode(";", $sToEmail); 82 + // just one email address, add it
  83 + if (is_string($mToEmail) && (strpos($mToEmail, ";") === false)) {
  84 + $this->oMailer->AddAddress($mToEmail);
  85 + } else {
  86 + // if we're passed an array, then use it
  87 + if (is_array($mToEmail)) {
  88 + $aEmailAddresses = $mToEmail;
  89 + // if there are multiple addresses (; separated), explode it
  90 + } elseif (strpos($mToEmail, ";") > 0) {
  91 + $aEmailAddresses = explode(";", $mToEmail);
  92 + }
84 for ($i=0; $i<count($aEmailAddresses); $i++) { 93 for ($i=0; $i<count($aEmailAddresses); $i++) {
85 $this->oMailer->AddAddress($aEmailAddresses[$i]); 94 $this->oMailer->AddAddress($aEmailAddresses[$i]);
86 - $default->log->info("Email.inc adding " . $aEmailAddresses[$i]); 95 + $default->log->debug("Email.inc adding " . $aEmailAddresses[$i]);
87 } 96 }
88 - } else {  
89 - $this->oMailer->AddAddress($sToEmail);  
90 } 97 }
  98 +
91 $this->oMailer->Subject = stripslashes($sSubject); 99 $this->oMailer->Subject = stripslashes($sSubject);
92 $this->oMailer->Body = stripslashes($sBody); 100 $this->oMailer->Body = stripslashes($sBody);
93 101
@@ -98,7 +106,7 @@ class Email { @@ -98,7 +106,7 @@ class Email {
98 } 106 }
99 return true; 107 return true;
100 } else { 108 } else {
101 - // no valid email address supplied 109 + // no valid email addresses supplied
102 return false; 110 return false;
103 } 111 }
104 } 112 }