- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/helper.php
- Класс: BitrixMailHelper
- Вызов: Helper::addImapMessage
static function addImapMessage($id, $data, &$error)
{
$error = null;
$id = (int) (is_array($id) ? $id['ID'] : $id);
$mailbox = MailboxTable::getList(array(
'filter' => array('ID' => $id, 'ACTIVE' => 'Y'),
'select' => array('*', 'LANG_CHARSET' => 'SITE.CULTURE.CHARSET')
))->fetch();
if (empty($mailbox))
return;
if (!in_array($mailbox['SERVER_TYPE'], array('imap', 'controller', 'domain', 'crdomain')))
return;
if (in_array($mailbox['SERVER_TYPE'], array('controller', 'crdomain')))
{
// @TODO: request controller
$result = CMailDomain2::getImapData();
$mailbox['SERVER'] = $result['server'];
$mailbox['PORT'] = $result['port'];
$mailbox['USE_TLS'] = $result['secure'];
}
elseif ($mailbox['SERVER_TYPE'] == 'domain')
{
$result = CMailDomain2::getImapData();
$mailbox['SERVER'] = $result['server'];
$mailbox['PORT'] = $result['port'];
$mailbox['USE_TLS'] = $result['secure'];
}
$client = static::createClient($mailbox, $mailbox['LANG_CHARSET'] ?: $mailbox['CHARSET']);
$dir = MailboxDirectory::fetchOneOutcome($mailbox['ID']);
$path = $dir ? $dir->getPath() : 'INBOX';
return $client->addMessage($path, $data, $error);
}