/** * 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); }
/** * 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; }