本文整理汇总了PHP中Horde_Mime_Headers::getIdentificationOb方法的典型用法代码示例。如果您正苦于以下问题:PHP Horde_Mime_Headers::getIdentificationOb方法的具体用法?PHP Horde_Mime_Headers::getIdentificationOb怎么用?PHP Horde_Mime_Headers::getIdentificationOb使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Horde_Mime_Headers
的用法示例。
在下文中一共展示了Horde_Mime_Headers::getIdentificationOb方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sendRedirectMessage
/**
* Send a redirect (a/k/a resent) message. See RFC 5322 [3.6.6].
*
* @param mixed $to The addresses to redirect to.
* @param boolean $log Whether to log the resending in the history and
* sentmail log.
*
* @return array An object with the following properties for each
* redirected message:
* - contents: (IMP_Contents) The contents object.
* - headers: (Horde_Mime_Headers) The header object.
* - mbox: (IMP_Mailbox) Mailbox of the message.
* - uid: (string) UID of the message.
*
* @throws IMP_Compose_Exception
*/
public function sendRedirectMessage($to, $log = true)
{
global $injector, $registry;
$recip = $this->recipientList(array('to' => $to));
$identity = $injector->getInstance('IMP_Identity');
$from_addr = $identity->getFromAddress();
$out = array();
foreach ($this->getMetadata('redirect_indices') as $val) {
foreach ($val->uids as $val2) {
try {
$contents = $injector->getInstance('IMP_Factory_Contents')->create($val->mbox->getIndicesOb($val2));
} catch (IMP_Exception $e) {
throw new IMP_Compose_Exception(_("Error when redirecting message."));
}
$headers = $contents->getHeader();
/* We need to set the Return-Path header to the current user -
* see RFC 2821 [4.4]. */
$headers->removeHeader('return-path');
$headers->addHeader('Return-Path', $from_addr);
/* Generate the 'Resent' headers (RFC 5322 [3.6.6]). These
* headers are prepended to the message. */
$resent_headers = new Horde_Mime_Headers();
$resent_headers->addHeader('Resent-Date', date('r'));
$resent_headers->addHeader('Resent-From', $from_addr);
$resent_headers->addHeader('Resent-To', $recip['header']['to']);
$resent_headers->addHeader('Resent-Message-ID', Horde_Mime_Headers_MessageId::create());
$header_text = trim($resent_headers->toString(array('encode' => 'UTF-8'))) . "\n" . trim($contents->getHeader(IMP_Contents::HEADER_TEXT));
$this->_prepSendMessageAssert($recip['list']);
$to = $this->_prepSendMessage($recip['list']);
$hdr_array = $headers->toArray(array('charset' => 'UTF-8'));
$hdr_array['_raw'] = $header_text;
try {
$injector->getInstance('IMP_Mail')->send($to, $hdr_array, $contents->getBody());
} catch (Horde_Mail_Exception $e) {
$e2 = new IMP_Compose_Exception($e);
if (($prev = $e->getPrevious()) && $prev instanceof Horde_Smtp_Exception) {
if ($prev instanceof Horde_Smtp_Exception_Recipients) {
$e2 = new IMP_Compose_Exception_Addresses($e);
foreach ($prev->recipients as $val) {
$e2->addAddress(new Horde_Mail_Rfc822_Address($val), _("Address rejected by the sending mail server."), $e2::BAD);
}
}
Horde::log(sprintf("SMTP Error: %s (%u; %s)", $prev->raw_msg, $prev->getCode(), $prev->getEnhancedSmtpCode() ?: 'N/A'), 'ERR');
$e2->logged = true;
}
throw $e2;
}
$recipients = strval($recip['list']);
Horde::log(sprintf("%s Redirected message sent to %s from %s", $_SERVER['REMOTE_ADDR'], $recipients, $registry->getAuth()), 'INFO');
if ($log && ($tmp = $headers['Message-ID'])) {
$msg_id = reset($tmp->getIdentificationOb()->ids);
/* Store history information. */
$injector->getInstance('IMP_Maillog')->log(new IMP_Maillog_Message($msg_id), new IMP_Maillog_Log_Redirect(array('msgid' => reset($resent_headers->getIdentificationOb()->ids), 'recipients' => $recipients)));
$injector->getInstance('IMP_Sentmail')->log(IMP_Sentmail::REDIRECT, $msg_id, $recipients);
}
$tmp = new stdClass();
$tmp->contents = $contents;
$tmp->headers = $headers;
$tmp->mbox = $val->mbox;
$tmp->uid = $val2;
$out[] = $tmp;
}
}
return $out;
}