- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/imap.php
- Класс: BitrixMailImap
- Вызов: Imap::append
public function append($mailbox, array $flags, DateTime $internaldate, $data, &$error)
{
$error = null;
if (!$this->authenticate($error))
{
return false;
}
foreach ($flags as $k => $item)
{
if (!preg_match(sprintf('/ ^ x5c? %s $ /ix', self::$atomRegex), $item))
{
unset($flags[$k]);
}
}
$response = $this->executeCommand(sprintf(
'APPEND "%s" (%s) "%26s" %s',
static::escapeQuoted($this->encodeUtf7Imap($mailbox)),
join(' ', $flags),
$internaldate->format('j-M-Y H:i:s O'),
static::prepareString($data)
), $error);
if ($error)
{
$error = $error == Imap::ERR_COMMAND_REJECTED ? null : $error;
$error = $this->errorMessage(array(Imap::ERR_APPEND, $error), $response);
return false;
}
$regex = sprintf('/^ OK x20 [ APPENDUID x20 ( d+ ) x20 ( d+ ) ] /ix', $this->getTag());
if (preg_match($regex, $response, $matches))
{
return sprintf('%u:%u', $matches[1], $matches[2]);
}
return true;
}