示例#1
0
 /**
  * Adds to the "To" recipient collection.
  *
  * @param mixed $RecipientEmail An email (or array of emails) to add to the "To" recipient collection.
  * @param string $RecipientName The recipient name associated with $RecipientEmail. If $RecipientEmail is
  * an array of email addresses, this value will be ignored.
  */
 public function To($RecipientEmail, $RecipientName = '')
 {
     if (is_string($RecipientEmail)) {
         if (strpos($RecipientEmail, ',') > 0) {
             $RecipientEmail = explode(',', $RecipientEmail);
             // trim no need, PhpMailer::AddAnAddress() will do it
             return $this->To($RecipientEmail, $RecipientName);
         }
         if ($this->PhpMailer->SingleTo) {
             return $this->AddTo($RecipientEmail, $RecipientName);
         }
         if (!$this->_IsToSet) {
             $this->_IsToSet = TRUE;
             $this->AddTo($RecipientEmail, $RecipientName);
         } else {
             $this->Cc($RecipientEmail, $RecipientName);
         }
         return $this;
     } elseif ($RecipientEmail instanceof stdClass) {
         $RecipientName = ObjectValue('Name', $RecipientEmail);
         $RecipientEmail = ObjectValue('Email', $RecipientEmail);
         return $this->To($RecipientEmail, $RecipientName);
     } elseif ($RecipientEmail instanceof Gdn_DataSet) {
         foreach ($RecipientEmail->ResultObject() as $Object) {
             $this->To($Object);
         }
         return $this;
     } elseif (is_array($RecipientEmail)) {
         $Count = count($RecipientEmail);
         if (!is_array($RecipientName)) {
             $RecipientName = array_fill(0, $Count, '');
         }
         if ($Count == count($RecipientName)) {
             $RecipientEmail = array_combine($RecipientEmail, $RecipientName);
             foreach ($RecipientEmail as $Email => $Name) {
                 $this->To($Email, $Name);
             }
         } else {
             trigger_error(ErrorMessage('Size of arrays do not match', 'Email', 'To'), E_USER_ERROR);
         }
         return $this;
     }
     trigger_error(ErrorMessage('Incorrect first parameter (' . GetType($RecipientEmail) . ') passed to function.', 'Email', 'To'), E_USER_ERROR);
 }
示例#2
0
 /**
  * Adds to the "To" recipient collection.
  *
  * @param mixed $RecipientEmail An email (or array of emails) to add to the "To" recipient collection.
  * @param string $RecipientName The recipient name associated with $RecipientEmail. If $RecipientEmail is
  * an array of email addresses, this value will be ignored.
  */
 public function To($RecipientEmail, $RecipientName = '')
 {
     if (is_string($RecipientEmail) && StrPos($RecipientEmail, ',') > 0) {
         $RecipientEmail = explode(',', $RecipientEmail);
         $RecipientEmail = array_map('trim', $RecipientEmail);
         $RecipientName = array_fill(0, Count($RecipientEmail), $RecipientName);
     } elseif ($RecipientEmail instanceof Gdn_DataSet) {
         $RecipientEmail = ConsolidateArrayValuesByKey($RecipientEmail->ResultArray(), 'Email', 'Name', '');
     }
     if (!is_array($RecipientEmail)) {
         // Only allow one address in the "to" field. Append all extras to the "cc" field.
         if (!$this->_IsToSet) {
             $this->PhpMailer->AddAddress($RecipientEmail, $RecipientName);
             $this->_IsToSet = True;
         } else {
             $this->Cc($RecipientEmail, $RecipientName);
         }
         return $this;
     }
     if ($this->PhpMailer->Mailer == 'smtp' || Gdn::Config('Garden.Email.UseSmtp')) {
         throw new Exception('You cannot address emails to more than one address when using SMTP.');
     }
     $this->PhpMailer->SingleTo = True;
     if (array_key_exists(0, $RecipientEmail) && is_object($RecipientEmail[0])) {
         $RecipientName = array();
         $Count = Count($RecipientEmail);
         for ($i = 0; $i < $Count; $i++) {
             $RecipientName[$i] = ObjectValue('Name', $RecipientEmail[$i]);
             $RecipientEmail[$i] = ObjectValue('Email', $RecipientEmail[$i]);
         }
     }
     $Count = Count($RecipientEmail);
     if (is_array($RecipientName) && $Count == Count($RecipientName)) {
         $RecipientEmail = array_combine($RecipientEmail, $RecipientName);
     } elseif ($RecipientName == '') {
         $RecipientEmail = array_combine($RecipientEmail, array_fill(0, $Count, ''));
     }
     foreach ($RecipientEmail as $Email => $Name) {
         $this->PhpMailer->AddAddress($Email, $Name);
     }
     return $this;
 }
 public function RetrieveInfo()
 {
     $this->Subject = self::DecodeMimeString(ObjectValue('subject', $this->Overview));
     $From = $this->HeaderInfo->from[0];
     $this->SenderMail = strtolower($From->mailbox . '@' . $From->host);
     if (property_exists($From, 'personal')) {
         $this->SenderName = self::DecodeMimeString($From->personal);
     }
     return $this;
 }