/**
* set headers in mail to be sent
*
* @param Tinebase_Mail $_mail
* @param Felamimail_Model_Account $_account
* @param Felamimail_Model_Message $_message
*/
protected function _setMailHeaders(Zend_Mail $_mail, Felamimail_Model_Account $_account, Felamimail_Model_Message $_message = NULL)
{
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Setting mail headers');
}
// add user agent
$_mail->addHeader('User-Agent', 'Tine 2.0 Email Client (version ' . TINE20_CODENAME . ' - ' . TINE20_PACKAGESTRING . ')');
// set organization
if (isset($_account->organization) && !empty($_account->organization)) {
$_mail->addHeader('Organization', $_account->organization);
}
// set message-id (we could use Zend_Mail::createMessageId() here)
if ($_mail->getMessageId() === NULL) {
$domainPart = substr($_account->email, strpos($_account->email, '@'));
$uid = Tinebase_Record_Abstract::generateUID();
$_mail->setMessageId('<' . $uid . $domainPart . '>');
}
if ($_message !== NULL) {
if ($_message->flags && $_message->flags == Zend_Mail_Storage::FLAG_ANSWERED && $_message->original_id instanceof Felamimail_Model_Message) {
$this->_addReplyHeaders($_message);
}
// set the header request response
if ($_message->reading_conf) {
$_mail->addHeader('Disposition-Notification-To', $_message->from_email);
}
// add other headers
if (!empty($_message->headers) && is_array($_message->headers)) {
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Adding custom headers: ' . print_r($_message->headers, TRUE));
}
foreach ($_message->headers as $key => $value) {
$value = $this->_trimHeader($key, $value);
$_mail->addHeader($key, $value);
}
}
}
}