/**
* Constructor.
*
* @param string $from The email address of the original sender.
* @param Horde_Mime_Headers $h The headers object for the message.
*/
public function __construct($from, Horde_Mime_Headers $h)
{
global $prefs;
$addressList = $nameList = array();
/* First we'll get a comma separated list of email addresses
* and a comma separated list of personal names out of $from
* (there just might be more than one of each). */
$addr_list = IMP::parseAddressList($from);
foreach ($addr_list as $addr) {
if (!is_null($addr->mailbox)) {
$addressList[] = $addr->bare_address;
}
if (!is_null($addr->personal)) {
$nameList[] = $addr->personal;
} elseif (!is_null($addr->mailbox)) {
$nameList[] = $addr->mailbox;
}
}
/* Define the macros. */
if (is_array($message_id = $h->getValue('message-id'))) {
$message_id = reset($message_id);
}
if (!($subject = $h->getValue('subject'))) {
$subject = _("[No Subject]");
}
$udate = strtotime($h->getValue('date'));
$match = array('/%n/' => "\n", '/%%/' => '%', '/%f/' => $from, '/%a/' => implode(', ', $addressList), '/%p/' => implode(', ', $nameList), '/%r/' => $h->getValue('date'), '/%d/' => strftime("%a, %d %b %Y", $udate), '/%x/' => strftime("%x", $udate), '/%c/' => strftime("%c", $udate), '/%m/' => $message_id, '/%s/' => $subject);
$this->_text = preg_replace(array_keys($match), array_values($match), $prefs->getValue('attrib_text'));
}