- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/imapcommands/mailsfoldersmanager.php
- Класс: BitrixMailImapCommandsMailsFoldersManager
- Вызов: MailsFoldersManager::moveMails
public function moveMails($folderToMoveName)
{
$result = $this->initData();
if (!$result->isSuccess())
{
return $result;
}
$folders = [];
foreach ($this->messages as $index => $message)
{
if (in_array($message['ID'], $this->messagesIds, true))
{
$folders[$message['DIR_MD5']] = $message['DIR_MD5'];
}
}
foreach ($folders as $index => $folderHash)
{
if ($folderHash === md5($folderToMoveName))
{
return $result->addError(new MainError(Loc::getMessage('MAIL_CLIENT_MOVE_TO_SELF_FOLDER', ['#FOLDER#' => $folderToMoveName]),
'MAIL_CLIENT_MOVE_TO_SELF_FOLDER'));
}
}
$dir = $this->getDirByPath($folderToMoveName);
if (!$dir)
{
return $result->addError(new MainError(Loc::getMessage('MAIL_CLIENT_MAILBOX_NOT_FOUND'),
'MAIL_CLIENT_MAILBOX_NOT_FOUND'));
}
if ($dir->isDisabled())
{
return $result->addError(new MainError(Loc::getMessage('MAIL_CLIENT_FOLDER_IS_DISABLED', ['#FOLDER#' => $folderToMoveName]),
'MAIL_CLIENT_FOLDER_IS_DISABLED'));
}
if ($dir->isSpam())
{
return $this->sendMailsToSpam();
}
elseif ($dir->isTrash())
{
return $this->deleteMails();
}
elseif ($dir->isIncome())
{
return $this->restoreMailsFromSpam();
}
$result = $this->moveMailsToFolder($folderToMoveName);
if (!$result->isSuccess())
{
return (new MainResult())->addError(new MainError(Loc::getMessage('MAIL_CLIENT_SYNC_ERROR'), 'MAIL_CLIENT_SYNC_ERROR'));
}
return (new MainResult());
}