• Модуль: 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);
}