IMP_Compose::_prepareHeaders PHP Méthode

_prepareHeaders() protected méthode

Prepare header object with basic header fields and converts headers to the current compose charset.
protected _prepareHeaders ( array $headers, array $opts = [] ) : Horde_Mime_Headers
$headers array Array with 'from', 'to', 'cc', 'bcc', and 'subject' values.
$opts array An array of options w/the following keys: - priority: (string) The message priority ('high', 'normal', 'low').
Résultat Horde_Mime_Headers Headers object with the appropriate headers set.
    protected function _prepareHeaders($headers, array $opts = array())
    {
        $ob = new Horde_Mime_Headers();
        $ob->addHeaderOb(Horde_Mime_Headers_Date::create());
        $ob->addHeaderOb(Horde_Mime_Headers_MessageId::create());
        $hdrs = array('From' => 'from', 'To' => 'to', 'Cc' => 'cc', 'Bcc' => 'bcc', 'Subject' => 'subject');
        foreach ($hdrs as $key => $val) {
            if (isset($headers[$val]) && (is_object($headers[$val]) || strlen($headers[$val]))) {
                $ob->addHeader($key, $headers[$val]);
            }
        }
        if ($this->replyType(true) == self::REPLY) {
            if ($refs = $this->getMetadata('references')) {
                $ob->addHeader('References', implode(' ', $refs));
            }
            if ($this->getMetadata('in_reply_to')) {
                $ob->addHeader('In-Reply-To', $this->getMetadata('in_reply_to'));
            }
        }
        /* Add priority header, if requested. */
        if (!empty($opts['priority'])) {
            switch ($opts['priority']) {
                case 'high':
                    $ob->addHeader('Importance', 'High');
                    $ob->addHeader('X-Priority', '1 (Highest)');
                    break;
                case 'low':
                    $ob->addHeader('Importance', 'Low');
                    $ob->addHeader('X-Priority', '5 (Lowest)');
                    break;
            }
        }
        /* Add Return Receipt Headers. */
        if (!empty($opts['readreceipt']) && ($h = $ob['from'])) {
            $from = $h->getAddressList(true);
            if (is_null($from->host)) {
                $from->host = $GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->config->maildomain;
            }
            $mdn = new Horde_Mime_Mdn($ob);
            $mdn->addMdnRequestHeaders($from);
        }
        return $ob;
    }