Отозвать письмо в mail ru: Можно ли отозвать отправленное письмо? — Help Mail.ru. Почта

Содержание

Как удалить письмо в mail ru для всех

Прочее › Отменить › Как отменить письмо в outlook

Удалить сообщение у всех

Нажмите правой кнопкой мыши по сообщению и выберите «Удалить у всех». После удаления сообщение больше не будет доступно другим пользователям, вместо него появится системное сообщение «Сообщение удалено».

  1. Как удалить письмо в майл ру у получателя
  2. Как удалить все письма от одного отправителя mail ru
  3. Можно ли отозвать отправленное электронное письмо
  4. Как удалить отправленное сообщение
  5. Как отменить отложенную отправку письма в майл
  6. Как редактировать отправленное письмо в mail ru
  7. Как удалить письмо у отправителя
  8. Как быстро удалить почту на Майле
  9. Как удалить сообщение в электронной почте
  10. Как получить письмо если оно ушло обратно
  11. Как вернуть отправленное письмо
  12. Как доказать что электронное письмо не было отправлено
  13. Можно ли удалить сообщение у собеседника
  14. Как удалить сообщение спустя 68 минут
  15. Как удалить сообщение даже через 68 минут
  16. Как заблокировать письма на майл ру
  17. Почему mail ru удаляет письма
  18. Как отменить отправку письма в почте на айфоне
  19. Как удалить все письма от одного отправителя iphone
  20. Как убрать письма из рассылки
  21. Как в почте выделить все письма от одного адресата
  22. Можно ли редактировать отправленное электронное письмо
  23. Можно ли отменить отправку посылки
  24. Когда электронное письмо считается полученным
  25. Как сделать так чтобы собеседник не мог удалить сообщение
  26. Как стереть сообщение
  27. Как удалить у всех если удалил у себя
  28. Как в Майле удалить письмо
  29. Можно ли отменить отправку заказного письма
  30. Как удалить старые письма mail
  31. Как удалить почту в майл ру

Как удалить письмо в майл ру у получателя

Можно ли отозвать отправленное письмо? К сожалению, нельзя отменить отправку письма. Когда вы нажимаете «Отправить», копия письма приходит на сервер получателя и сохраняется там. У нас нет технической возможности удалить его в почте получателя.

Как удалить все письма от одного отправителя mail ru

Удалить все письма c одного адреса:

  • Введите в поисковой строке адрес отправителя.
  • Выделите первое письмо, нажав на галочку.
  • Нажмите «Выделить все» в верхней панели.
  • Нажмите «Удалить».

Можно ли отозвать отправленное электронное письмо

Если вы решите, что не хотите отправлять сообщение, вы можете отозвать письмо сразу после его отправки. В левом нижнем углу вы увидите надпись «Письмо отправлено» и две ссылки — «Отменить» и «Просмотреть сообщение». Нажмите Отменить.

Как удалить отправленное сообщение

Удаление сообщения, отправленного в Майкрософт Teams (бесплатно):

  • Перейдите в чат.
  • Коснитесь и удерживайте отправленное сообщение.
  • Выберите Удалить.
  • Нажмите удалить еще раз, чтобы подтвердить. Ваше сообщение или изображение будет удалено из чата.

Как отменить отложенную отправку письма в майл

Чтобы отключить таймер на письме и отменить отправку:

  • Перейдите в папку «Исходящие».
  • Откройте письмо, которое ожидает отправки.
  • Нажмите на активный значок отложенной отправки, чтобы он стал серым.
  • Нажмите «Отменить», чтобы удалить письмо, или «Сохранить», чтобы оставить его в черновиках.

Как редактировать отправленное письмо в mail ru

В Почте вы можете редактировать полученные и отправленные файлы (текстовые документы, таблицы и презентации), не скачивая на компьютер. Для этого откройте файл и нажмите «Редактировать».

Как удалить письмо у отправителя

Откройте сообщение, которое вы хотите отозвать и заменить. На вкладке Сообщение в группе Действия нажмите кнопку Другие действия и выберите Отзыв сообщения. Щелкните удалить непрочитанные копии или удалить непрочитанные копии и заменить их новыми сообщениями.

Как быстро удалить почту на Майле

  • Войдите в аккаунт, который хотите удалить.
  • Перейдите к форме удаления.
  • Введите имя ящика и пароль.
  • Укажите причину удаления, пароль и код с картинки.
  • Нажмите «Удалить».

Как удалить сообщение в электронной почте

Как удалить сообщение электронной почты?:

  • В представлении «Входящие» нажмите и удерживайте одно сообщение, и вы увидите значок Корзина.
  • Вы также можете настроить команду Удалить в качестве параметра прокрутки (Параметры > Параметры прокрутки), а затем смахните пальцем сообщение, которое нужно удалить.

Как получить письмо если оно ушло обратно

3 Куда обращаться, если письмо или посылка не дошли вовремя или пришли вскрытыми? В отделение почты, откуда послание было отправлено, либо в то, куда оно должно поступить. Там надо написать заявление и приложить к нему квитанцию, выданную при приеме почтового отправления.

Как вернуть отправленное письмо

Единственный вариант, как принудительно вернуть отправленное письмо обратно — обратиться в отделение почтовой связи и написать заявление. Заявление может быть написано в свободной форме или на специальном бланке Заявление-указание (предоставляется на почте бесплатно).

Как доказать что электронное письмо не было отправлено

Доказательством подлинности сообщения могут служить: нотариальный протокол осмотра электронного почтового ящика, заключение компьютерно-технической экспертизы, наличие электронной подписи.

Можно ли удалить сообщение у собеседника

Теперь своё сообщение можно удалить не только у себя, но и у остальных его получателей. Для этого щёлкните по сообщению, нажмите на значок с корзиной и выберите Удалить для всех. При следующем удалении система запомнит выбор и галочка уже будет стоять.

Как удалить сообщение спустя 68 минут

Нажмите на значок урны, который обозначает опцию удаления. Если 68 минут еще не прошли, выберите «Удалить для всех». Позже будет видна только функция «Удалить для меня», которая сотрет сообщение только из вашего чата, но не из чата собеседника. Вместо сообщения в чате останется оповещение «Это сообщение было удалено».

Как удалить сообщение даже через 68 минут

Вручную измени дату и время на тот период, когда было отправлено сообщение — важно, чтобы между установленными параметрами и временем отправки не было разницы больше, чем в 68 минут. Сохраняя «режим полета», вернись в WhatsApp, выбери нужное сообщение и удали его у всех обычным способом!

Как заблокировать письма на майл ру

Откройте письмо от отправителя, которого вы хотите заблокировать. → «Создать фильтр» или Shift+L. В поле «Тогда» выберите «Удалить навсегда».

Почему mail ru удаляет письма

Почту очистили из-за неиспользования

Если в течение года в аккаунт никто не входит и не использует его в почтовых программах и приложениях, мы очищаем его — это условие прописано в пункте 8 пользовательского соглашения. К сожалению, письма удалились навсегда — восстановить их не сможет даже служба поддержки.

Как отменить отправку письма в почте на айфоне

После отправки электронного письма у Вас есть десять секунд, в течение которых Вы можете передумать и отменить отправку. Коснитесь «Отменить отправку» в нижней части экрана, чтобы отозвать электронное письмо.

Как удалить все письма от одного отправителя iphone

Откройте приложение «Почта» и перейдите в папку «Входящие». Нажмите «Изменить» в правом верхнем углу и выберите отдельные сообщения, которые требуется удалить, или нажмите «Выбрать все». Для быстрого выбора нескольких электронных писем смахните вниз, чтобы установить флажки. Нажмите «Корзина» или «В архив».

Как убрать письма из рассылки

Как отказаться от рассылки

Откройте сообщение. Внизу сообщения нажмите Отказаться от подписки или Изменить настройки. Если таких ссылок нет, отправитель не предоставил данные для отмены подписки. В этом случае можно заблокировать его, следуя инструкции выше, или отправить письмо в спам.

Как в почте выделить все письма от одного адресата

Выделить письма от одного отправителя:

  • Напишите адрес отправителя в строке поиска.
  • Выделите первое письмо.
  • Нажмите «Выделить все».

Можно ли редактировать отправленное электронное письмо

Отредактировать отправленное сообщение

Отредактировать сообщение можно в течение 48 часов с момента отправки. Редактировать можно только свои сообщения, после редактирования у сообщения появится пометка «изменено», которую увидят все участники чата.

Можно ли отменить отправку посылки

Адресат имеет право отказаться от посылки в момент ее получения. Для этого достаточно поставить соответствующую отметку на извещении. Сотрудник почты возвращает отправление назад отправителю, если его не забрали в течение 30 дней.

Когда электронное письмо считается полученным

Любое извещение или уведомление, направленное, электронным сообщением или телефаксом, считается полученным Стороной, которой оно адресовано, в первый рабочий день после отправки электронного сообщения или телефакса.

Как сделать так чтобы собеседник не мог удалить сообщение

Для того чтобы запретить своего собеседнику удалять любые сообщения в мессенджере, достаточно просто процитировать его, либо напрямую ответить: история переписки сохранится, и собеседник не сможет удалить свое сообщение.

Как стереть сообщение

Android:

  • Откройте чат.
  • Нажмите и удерживайте сообщение, которое вы отправили в последние три часа.
  • Нажмите Удалить.
  • Выберите Удалить для всех.

Как удалить у всех если удалил у себя

Для этого нужно нажать на сообщение, а затем вызвать меню, в котором можно выбрать: удалить сообщение только у себя или у всех.

Как в Майле удалить письмо

Удаление писем:

  • Откройте приложение Gmail на устройстве Android.
  • Откройте письмо или прямо в списке входящих нажмите на фото отправителя (или на круг с инициалом).
  • Нажмите на значок «Удалить».

Можно ли отменить отправку заказного письма

Любое регистрируемое почтовое отправление (РПО) до момента его выдачи получателю можно отозвать назад или переадресовать по другому адресу. Это правило распространяется на посылки, заказную и ценную письменную корреспонденцию, почтовые переводы.

Как удалить старые письма mail

Чтобы удалить письма за определенный период, сделайте следующее:

  • Введите в поиске писем следующие параметры со своими датами:
  • После создания фильтра, все письма, которые подходят под критерий будут найдены и показаны.
  • Далее нужно зайти в корзину и нажать на кнопку «Очистить корзину»

Как удалить почту в майл ру

  • Войдите в почтовый ящик, который хотите удалить.
  • Перейдите к форме удаления.
  • Введите имя ящика и пароль.
  • Укажите причину удаления, пароль и код с картинки.
  • Нажмите «Удалить».

Отзыв или замена отправленного сообщения электронной почты



Интерактивная поддержка в браузере может предоставлять цифровые решения для проблем с Office


Попробуйте интерактивную поддержку

При отзыве сообщения отправленное сообщение извлекается из почтовых ящиков получателей, которые еще не открыли его. Вы также можете заменить сообщение на замену. Например, если вы забыли включить вложение, можно попытаться отозвать сообщение, а затем отправить сообщение на замену с вложением.

Отзыв сообщений доступен после нажатия кнопки Отправить и доступен только в том случае, если у вас и получателя есть учетная запись электронной почтыMicrosoft 365 или Microsoft Exchange в одной организации. Например, невозможно отозвать сообщение, отправленное в или из учетной записи Hotmail, Gmail или live.com. 

Отзыв и замена сообщения


  1. В область папок в левой части окна Outlook выберите папку Отправленные .

  2. org/ListItem»>

    Откройте сообщение, которое вы хотите отозвать. Дважды щелкните сообщение, чтобы открыть его. Если выбрать сообщение так, чтобы оно отображалось в области чтения, его невозможно будет отозвать

  3. Если у вас есть классическая лента, на вкладке Сообщение выберите Действия > отозвать это сообщение.


    Если у вас есть упрощенная лента, перейдите на вкладку Сообщение, а затем выберите Дополнительные команды (…). Наведите указатель мыши на пункт Действия и выберите Отозвать это сообщение

    Примечания: 

    • Если команда Отзыв сообщения не отображается, возможно, у вас нет учетной записи Exchange или данная возможность недоступна в организации.

    • Вы не можете вспомнить сообщение, защищенное azure Information Protection.

    • Вы не можете вспомнить сообщение в Outlook в Интернете.

  4. Выберите Удалить непрочитанные копии этого сообщения или Удалить непрочитанные копии и замените новым сообщением, а затем нажмите кнопку ОК.

  5. Если вы отправляете сообщение на замену, создайте его и нажмите кнопку Отправить.

Проверка отзыва


После отправки запроса на отзыв, обычно менее чем через 30 секунд, вы получите уведомление по электронной почте с темой «Отчет об отзыве сообщения для сообщения [тема исходного сообщения]».  

Выберите ссылку Просмотр отчета об отзыве сообщения, чтобы просмотреть отчет в браузере. При появлении запроса войдите с учетными данными почтового ящика, чтобы просмотреть отчет.

Действия по отзыву обычно выполняются быстро, независимо от количества получателей. Но если запрос на отзыв не может быть выполнен сразу по какой-либо причине (например, почтовый ящик получателя временно недоступен), мы продолжаем повторять попытку в течение 24 часов, прежде чем пометить отзыв как сбой.

Обновления состояния, как правило, также довольно быстро, но иногда может занять до пяти минут для сообщения с несколькими сотнями получателей. Для большого числа получателей (десятков тысяч) само отзыв по-прежнему происходит быстро, но получение состояния отзыва для всех получателей может занять до тридцати минут.



Важно: 
Office 2007 больше не поддерживается. Перейдите на Microsoft 365, чтобы работать удаленно с любого устройства и продолжать получать поддержку.

Повысить статус

Отзыв и замена сообщения


  1. В представлении Почта в Область навигации щелкните папку Отправленные.

  2. org/ListItem»>

    Откройте сообщение, которое вы хотите отозвать и заменить.

  3. На вкладке Сообщение в группе Действия нажмите кнопку Другие действия и выберите Отзыв сообщения.

  4. Щелкните удалить непрочитанные копии или удалить непрочитанные копии и заменить их новыми сообщениями.

    Примечание: Если вы отправляете сообщение большому количеству пользователей, может потребоваться снять флажок Сообщать о результате отзыва для каждого из получателей.

  5. org/ListItem»>

    Если вы отправляете заменяющее сообщение, составьте сообщение, а затем нажмите кнопку Отправить.

Если вы не видите команды Отзыв сообщения, вероятно, у вас нет учетной записи Exchange Server или вы не используете Microsoft Office Outlook 2007. Они необходимы для отзыва сообщений.

Это можно узнать в диалоговом окне Параметры учетной записи в Outlook.

  1. В меню Инструменты выберите пункт Настройка учетных записей.

  2. На вкладке Электронная почта в столбце Тип указаны типы учетных записей для каждого элемента.

Проверка отзыва


Результат отзыва сообщения зависит от параметров получателя в Microsoft Outlook. Ниже описаны различные ситуации, в том числе отзыв сообщения, отправленного в общедоступную папку Microsoft Exchange.








Действие


Результат

Вы отправляете сообщение кому-то по электронной почте. Исходное сообщение отзывается и заменяется новым.

На компьютере получателя в разделе Параметры отслеживания установлен флажок Обрабатывать запросы и ответы по прибытии.

(Чтобы просмотреть этот параметр, в меню Сервис щелкните Параметры и Параметры электронной почты, а затем выберите Параметры отслеживания.)

Исходное сообщение и сообщение отзыва попадают в папку «Входящие» на компьютере получателя.

Если исходное сообщение не было прочитано, оно удаляется, а получатель уведомляется о том, что отправитель удалил сообщение из его почтового ящика.

Примечание: Если при обработке сообщения отзыва исходное сообщение помечено как прочитанное (письмо, просмотренное в области чтения, не считается прочитанным в данном сценарии), получатель уведомляется о том, что отправитель хочет удалить сообщение. Однако сообщение остается в папке Outlook получателя.

Вы отправляете сообщение кому-то по электронной почте. Исходное сообщение отзывается и заменяется новым.

На компьютере получателя в разделе Параметры отслеживания не установлен флажок Обрабатывать запросы и ответы по прибытии.

(Чтобы просмотреть этот параметр, в меню Сервис щелкните Параметры и Параметры электронной почты, а затем выберите Параметры отслеживания.)

Исходное сообщение и сообщение отзыва попадают в папку «Входящие» на компьютере получателя.

При этом на компьютере получателя происходит следующее:

  • org/ListItem»>

    Если получатель сначала открывает сообщение отзыва, исходное сообщение удаляется, а получатель уведомляется о том, что отправитель удалил сообщение из его почтового ящика.

  • Если получатель сначала открывает исходное сообщение, отзыв не выполняется, в результате оказываются доступными оба сообщения.

Примечание: Если при обработке сообщения отзыва исходное сообщение помечено как прочитанное (письмо, просмотренное в области чтения, не считается прочитанным в данном сценарии), получатель уведомляется о том, что отправитель хочет удалить сообщение. Однако сообщение остается в папке Outlook получателя.

Вы отправляете сообщение кому-то по электронной почте. Исходное сообщение отзывается и заменяется новым.

На компьютере получателя исходное сообщение перемещается в другую папку вручную или с помощью правила, а сообщение отзыва остается в папке «Входящие» (или также перемещается в другую папку).

Если исходное сообщение и новое сообщение находятся в разных папках, получатель уведомляется о том, что попытка отзыва не удалась. Это происходит независимо от настроек Outlook и состояния прочтения сообщения.

Получателю доступны как исходное, так и новое сообщение.

Примечание: Если получатель читает исходное сообщение и отмечает его как непрочтенное, сообщение считается непрочтенным и отзыв выполняется успешно.

Вы отправляете сообщение кому-то по электронной почте. Исходное сообщение отзывается и заменяется новым.

На компьютере получателя оба сообщения перемещаются в одну папку вручную или с помощью правила. В результате происходят те же действия, как если бы автоматическая обработка сообщений не была настроена.

При этом на компьютере получателя происходит следующее:

  • Если получатель сначала открывает сообщение отзыва, исходное сообщение удаляется, а получатель уведомляется о том, что отправитель удалил сообщение из своего почтового ящика.

  • Если получатель сначала открывает исходное сообщение, отзыв не выполняется, и в результате оказываются доступными оба сообщения.

Примечание: Если получатель читает исходное сообщение и отмечает его как непрочтенное, сообщение считается непрочтенным и отзыв выполняется успешно.

Вы отправляете сообщение электронной почты в общедоступную папку. Исходное сообщение отзывается и заменяется новым.

Будет выполнено одно из следующих действий:

  • Если получатель, читающий новое сообщение, имеет доступ для чтения ко всем элементам общедоступной папки, но не читал исходного сообщения, отзыв выполняется успешно (остается только новое сообщение). Отправитель уведомляется об успешном отзыве.

  • Если получатель уже пометил исходное сообщение как прочтенное, он получает уведомление о том, что отзыв не выполнен, и в результате удаляется только сообщение отзыва.

Если пользователь с любыми другими правами доступа к общедоступной папке открывает новое сообщение, то отзыв не выполняется и пользователь получает уведомление об этом. Оба сообщения остаются в общедоступной папке.

  • Если получатель читает исходное сообщение и отмечает его как непрочтенное, сообщение считается непрочтенным и отзыв выполняется успешно.

  • Что касается общедоступных папок, успешность отзыва зависит от прав получателя, а не отправителя.







Отзыв сообщений в облаке в Exchange Online — Центр сообщества Майкрософт


Видео: отзыв или замена отправленного сообщения электронной почты


Проверьте, есть ли у вас учетная запись Exchange в Outlook


Я хочу вспомнить сообщение в Outlook.com


Дополнительная справка по электронной почте Outlook


Как отозвать электронное письмо, которое вы не хотели отправлять (теперь и в Gmail!)

Перейти к основному содержанию

мемгенератор. net

Между детьми, которые легкомысленно играют с сенсорными экранами, забытыми вложениями и безрассудными моментами, когда вы решаете просто-выбросить все из-под носа, мы все отправили по крайней мере одно электронное письмо, которое мы сделали бы что угодно, чтобы получить ответ .

Отличные новости, вам на самом деле может отзывать сообщения на двух ведущих почтовых платформах. Вот как это сделать:

Outlook Сервер Exchange — «Отзыв сообщения»

Чтобы «отозвать сообщение», которое уже было отправлено:

  1. Откройте папку «Отправленные»
  2. Откройте сообщение электронной почты, которое вы хотите отозвать/забыть/облить керосином и поджечь
  3. На ленте вверху перейдите в группу «Переместить»
  4. Нажмите «Действия»
  5. Выберите «Отозвать это сообщение»
  6. Нажмите «Удалить непрочитанные копии этого сообщения» (или «Заменить. ..», что тоже отлично)

Лучше всего использовать функцию «Отзыв сообщения» в Outlook сразу после отправки сообщения, так как при этом неоткрытое электронное письмо будет перемещено прямо в папку «Удаленные» получателя.

Одно БОЛЬШОЕ примечание — запрос на отзыв не всегда работает! Например, если получатель уже открывал сообщение, оно останется в его папке «Входящие» (И они будут уведомлены о том, что вы попытались отозвать). Ознакомьтесь со всеми функциями и ограничениями этой функции на сайте Office.com.

ЕЩЕ одно примечание. Если вы используете настольное приложение Outlook, которое не находится на сервере Exchange, вы все равно увидите этот параметр, , но , он не будет удалять электронную почту из почтового ящика третьей стороны. Вместо этого ваш получатель может получить только уведомление о попытке отзыва:

Gmail — «Отменить отправку»

Это новая опция в Gmail! Важно: вы должны сначала ВКЛЮЧИТЬ эту функцию (по умолчанию она недоступна!). Чтобы включить «Отменить отправку» Gmail:

  1. Щелкните значок шестеренки Google в правом верхнем углу экрана
  2. .

  3. Выберите «Настройки»
  4. На этой первой/главной вкладке прокрутите вниз до «Отменить отправку» и нажмите «Включить»
  5. Установите окно отмены (ОЧЕНЬ КОРОТКОЕ время, в течение которого вы должны решить, хотите ли вы отменить отправку электронного письма)
  6. Нажмите «Сохранить изменения » внизу страницы

Вы также можете посетить Google.com для получения этих инструкций.

Теперь, когда он включен, чтобы «отменить отправку» отправленного Gmail:

  1. Во-первых, нажмите «Отправить» в письме, которое потенциально может ограничить карьеру или положить конец отношениям
  2. Вы сразу увидите опцию «Отменить» на панели уведомлений об отправленных письмах
  3. Нажмите «Отменить» до того, как истечет несколько секунд вашего ОЧЕНЬ КОРОТКОГО периода отмены (приятно, вы вернетесь к неотправленному электронному письму, чтобы завершить/обновить/уничтожить его)

В отличие от Outlook Exchange Server, Google не отзывает сообщение. Это задерживает фактическую отправку сообщения, и только в пределах ОЧЕНЬ КОРОТКОГО промежутка времени, который вы установили. Если вы не нажмете кнопку «Отменить», возможно, потому, что вы кричите коллегам «Дай пять!» или испытываете почти эйфорию, подобную Джерри Магуайру, по поводу того, что распространили ваше «заявление о миссии»… тогда электронное письмо пропало.

Лучше всего использовать «Отменить отправку», когда у вас все еще есть хотя бы один палец на сенсорной панели, мыши или экране, и все ваши мысли о вас.

Если вы вспоминаете сообщения на других платформах поставщиков услуг электронной почты, поделитесь инструкциями и/или ссылками на инструкции ниже!

  • 8 шагов для улучшения качества воздуха в помещении в вашем офисе, на конференции или дома.

    14 апр. 2023 г.

  • Защита файлов на ПК — контрольный список *сегодня*

    17 мая 2021 г.

  • Как создать кадровый план для инклюзивного найма

    22 июня 2020 г.

  • Внезапно вам нужно обслуживать всех ваших студентов онлайн? Начало здесь.

    31 марта 2020 г.

  • Как изменить ситуацию сейчас, чтобы лучше ориентироваться в условиях пандемии

    16 марта 2020 г.

  • Лидеры: это как вывести вашу организацию за рамки НАМЕРЕНИЙ и к ВОЗДЕЙСТВИЮ.


    24 января 2019 г.

  • Постановщики целей: сделайте эту ОДНУ вещь по-другому, чтобы, наконец, достичь того, к чему вы стремились.

    3 января 2019 г.

  • Брендинг начинается: что, если ваша боль… ЯВЛЯЕТСЯ вашей целью?

    18 октября 2016 г.

  • Виртуальная реальность/VR 201: Руководство для продюсеров по вовлечению СЕГОДНЯ в иммерсивный контент

    19 мая 2016 г.

  • Как взломать Slack и Asana, чтобы создать отличный инструмент для управления проектами (2 из 2)

    17 февраля 2016 г.

Как Mail.Ru сократил объем хранилища электронной почты с 50 до 32 ПБ — Smashing Magazine

  • 16 мин чтения
  • Оптимизация,
    Электронная почта
  • Поделиться в Twitter, LinkedIn
Об авторе

Технический директор службы почты и портала Mail.ru.
Больше о
Андрей ↬

Когда два года назад курс российского рубля резко упал, это натолкнуло нас на мысль сократить расходы на оборудование и хостинг почтового сервиса Mail. Ru. Во-первых, нам нужно было посмотреть, из чего состоит электронная почта . На индексы и тела приходится только 15% объема хранилища, тогда как 85% занимают файлы. Итак, оптимизацию файлов (то есть вложений) стоит изучить подробнее.
В то время у нас не было дедупликации файлов, но мы подсчитали, что это может уменьшить общий размер хранилища на 36%, потому что многие пользователи получают одни и те же сообщения, такие как прайс-листы из интернет-магазинов и информационные бюллетени из социальных сетей, которые содержать изображения и так далее. В этой статье я опишу, как мы внедрили систему дедупликации под руководством PSIAlt.

На индексы и тела приходится только 15% объема хранилища, тогда как 85% занимают файлы. Итак, оптимизацию файлов (то есть вложений) стоит изучить подробнее. В то время у нас не было дедупликации файлов, но мы подсчитали, что это может уменьшить общий размер хранилища на 36%, потому что многие пользователи получают одни и те же сообщения, такие как прайс-листы из интернет-магазинов и информационные бюллетени из социальных сетей, которые содержать изображения и так далее. В этой статье я опишу, как мы внедрили систему дедупликации под руководством PSIAlt.

Дополнительная литература на SmashingMag:

  • Как улучшить рабочий процесс электронной почты с помощью модульного дизайна
  • Упрощение кодирования электронной почты с адаптивным HTML с помощью MJML
  • Шаблоны электронной почты для веб-дизайнеров и разработчиков
  • Дизайн для электронной почты (электронная книга) 90 041

Еще после прыжка! Продолжить чтение ниже ↓

Хранилище метаданных

Мы имеем дело с потоком файлов. Когда мы получаем сообщение, мы должны доставить его пользователю как можно скорее. Нам нужно уметь быстро распознавать дубликаты. Простым решением было бы назвать файлы на основе их содержимого. Мы используем SHA-1 для этой цели. Исходное имя файла хранится в самом письме, поэтому нам не нужно об этом беспокоиться.

Как только приходит новое электронное письмо, мы извлекаем файлы, вычисляем их хэши и добавляем результат в электронное письмо. Это необходимый шаг, чтобы иметь возможность легко найти файлы, принадлежащие определенному электронному письму, в нашем будущем хранилище, когда это электронное письмо будет отправлено.

Теперь давайте загрузим файл в наше хранилище и выясним, существует ли там уже другой файл с таким же хешем. Это означает, что нам нужно хранить все хэши в памяти. Назовем это хранилище хэшей FileDB.

Один и тот же файл может быть прикреплен к разным электронным письмам, поэтому нам понадобится счетчик, который отслеживает все электронные письма, содержащие этот файл.

Счетчик увеличивается с каждым новым загружаемым файлом. Около 40% всех файлов удаляются, поэтому, если пользователь удаляет электронное письмо, содержащее файлы, загруженные в облако, счетчик должен быть уменьшен. Если счетчик достигает нуля, файл можно удалить.

Здесь мы сталкиваемся с первой проблемой: информация об электронном письме (индексы) хранится в одной системе, а информация о файле — в другой. Это может привести к ошибке. Например, рассмотрим следующий рабочий процесс:

  1. Система получает запрос на удаление сообщения электронной почты.
  2. Система проверяет индексы электронной почты.
  3. Система видит наличие вложения (SHA-1).
  4. Система отправляет запрос на удаление файла.
  5. Произошел сбой, поэтому письмо не удаляется.

В этом случае письмо остается в системе, но счетчик уменьшается на 1. Когда система получает второй запрос на удаление этого письма, счетчик снова уменьшается — и мы можем столкнуться с ситуацией, когда файл все еще прикреплен к электронному письму, но счетчик уже на 0,

Очень важно не потерять данные. У нас не может быть ситуации, когда пользователь открывает электронное письмо и не обнаруживает там вложений. При этом хранение некоторых избыточных файлов на дисках не имеет большого значения. Все, что нам нужно, — это механизм, позволяющий однозначно определить, правильно ли счетчик установлен в 0. Поэтому у нас есть еще одно поле — magic .

Алгоритм прост. Вместе с хэшем файла мы храним в электронном письме случайно сгенерированное число. Все запросы на загрузку или удаление файла учитывают это случайное число: В случае запроса на загрузку это число добавляется к текущему значению магического числа; если это запрос на удаление, это случайное число вычитается из текущего значения магического числа.

Таким образом, если все письма увеличивали и уменьшали счетчик нужное количество раз, то магическое число также будет равно 0. В противном случае файл удалять нельзя.

Рассмотрим пример. У нас есть файл с именем sha1 . Он загружается один раз, и письмо генерирует для него случайное (магическое) число, равное 345.

Затем приходит новое письмо с тем же файлом. Он генерирует собственное магическое число (123) и загружает файл. Новое магическое число добавляется к текущему значению магического числа (345), а счетчик увеличивается на 1. В результате в FileDB мы имеем магическое число со значением 468 и счетчиком, установленным на 2.

После того, как пользователь удалит второе письмо, магическое число, сгенерированное для этого письма, вычитается из текущего значения магического числа (468), а счетчик уменьшается на 1.

Давайте сначала посмотрим на нормальный ход событий . Пользователь удаляет первое электронное письмо, и магическое число и счетчик становятся равными 0. Это означает, что данные непротиворечивы и файл можно удалить.

Теперь предположим, что что-то пойдет не так: второе письмо отправляет два запроса на удаление. Значение счетчика, равное 0, означает, что ссылок на файл больше нет, но магическое число, равное 222, сигнализирует о проблеме: файл нельзя удалить, пока данные не будут согласованы.

Давайте еще немного разовьем ситуацию. Предположим, что первое электронное письмо также было удалено. В этом случае магическое число (-123) по-прежнему сигнализирует о несоответствии.

В качестве меры предосторожности, когда счетчик достигает 0, а магическое число нет (в нашем случае магическое число равно 222, а счетчик равен 0), файлу присваивается флаг «Не удалять». Таким образом, даже если — после серии удалений и загрузок — и магическое число, и счетчик каким-то образом станут 0, мы все равно будем знать, что этот файл проблемный и его нельзя удалять. Системе не разрешено генерировать магический одноранговый узел 0. Если вы отправите 0 в качестве магического числа, вы получите сообщение об ошибке.

Назад к FileDB. Каждая сущность имеет набор флагов. Планируете ли вы их использовать или нет, они вам понадобятся (если, скажем, файл необходимо пометить как неудаляемый).

У нас есть все атрибуты файла, кроме того, где файл находится физически. Это место определяется сервером (IP) и диском. Таких серверов и два таких диска должно быть два. Мы храним две копии каждого файла.

Но на одном диске хранится очень много файлов (в нашем случае около 1 млн), а значит эти записи будут идентифицироваться одной и той же парой дисков в FileDB, поэтому хранить эту информацию в FileDB было бы расточительно. Давайте поместим его в отдельную таблицу PairDB, связанную с FileDB через идентификатор пары дисков.

Думаю, само собой разумеется, что помимо ID пары дисков нам также понадобится поле flags . Забегая немного вперед, упомяну, что это поле сигнализирует о том, заблокированы ли диски (скажем, один диск вышел из строя, а другой копируется, поэтому ни на один из них нельзя записать новые данные).

Также нам нужно знать, сколько свободного места есть на каждом диске — отсюда и соответствующие поля.

Чтобы все работало быстро, FileDB и PairDB должны быть резидентными в оперативной памяти. Раньше мы использовали Tarantool 1.5, теперь нужно использовать последнюю версию. FileDB имеет пять полей (длиной 20, 4, 4, 4 и 4 байта), что в сумме дает 36 байтов. Кроме того, каждая запись имеет 16-байтовый заголовок, а также 1-байтовый указатель длины на поле, в результате чего общий размер записи составляет 57 байт. 93) = 179 ГБ

Всего нужно 800 ГБ оперативной памяти. И давайте не будем забывать о репликации, которая удваивает объем требуемой оперативной памяти.

Если мы купим машины с 256 ГБ ОЗУ на борту, нам понадобится восемь из них.

Мы можем оценить размер PairDB. Средний размер файла составляет 1 МБ, а емкость диска — 1 ТБ, что позволяет хранить около 1 миллиона файлов на одном диске; Итак, нам потребуется около 28 000 дисков. Одна запись PairDB описывает два диска. Таким образом, PairDB содержит 14 000 записей — ничтожно мало по сравнению с FileDB.

Загрузка файла

Теперь, когда мы разобрались со структурой базы данных, давайте обратимся к API для взаимодействия с системой. На первый взгляд, нам нужны методы upload и delete . Но не забывайте о дедупликации: велика вероятность, что файл, который мы пытаемся загрузить, уже находится в хранилище, и загружать его второй раз не имеет смысла. Итак, необходимы следующие методы:

  • inc(sha1, magic) увеличивает счетчик. Если файл не существует, он возвращает ошибку. Напомним, что нам также понадобится магическое число, которое поможет предотвратить некорректное удаление файла.
  • upload(sha1, magic) следует вызывать, если inc вернул ошибку, что означает, что этот файл не существует и должен быть загружен.
  • dec(sha1, magic) следует вызывать, если пользователь удаляет электронное письмо. Счетчик сначала уменьшается.
  • GET /sha1 загружает файл по HTTP.

Давайте подробнее рассмотрим, что происходит во время загрузки. Для демона, реализующего этот интерфейс, мы выбрали протокол IProto. Демоны должны хорошо масштабироваться для любого количества машин, поэтому они не сохраняют состояния. Предположим, мы получаем запрос через сокет:

Имя команды сообщает нам длину заголовка, поэтому мы сначала читаем заголовок. Теперь нам нужно узнать длину файла origin-len . Для его загрузки необходимо выбрать пару серверов. Мы просто извлекаем все записи (несколько тысяч) из PairDB и используем стандартный алгоритм для поиска нужной пары: Берем отрезок длиной, равной сумме свободных мест на всех парах, случайным образом выбираем точку на этом отрезке, и выберите любую пару, которой принадлежит эта точка.

Однако выбирать пару таким образом рискованно. Предположим, что все наши диски заполнены на 90% — и тогда мы добавляем новый пустой диск. С большой долей вероятности все новые файлы будут загружаться на этот диск. Чтобы избежать этой проблемы, мы должны суммировать не свободное пространство пары дисков, а n-й корень этого свободного пространства.

Итак, мы выбрали пару, но наш демон потоковый, и если мы начинаем заливать файл в хранилище, обратного пути нет. При этом перед загрузкой реального файла мы сначала загрузим небольшой тестовый файл. Если тестовая загрузка прошла успешно, мы будем читать filecontent из сокета и загрузить его в хранилище; в противном случае выбирается другая пара. Хэш SHA-1 можно прочитать на лету, поэтому он также проверяется при загрузке.

Теперь рассмотрим загрузку файла из загрузчика на выбранную пару дисков. На машинах с дисками настраиваем nginx и используем протокол WebDAV. Приходит электронное письмо. В FileDB пока нет этого файла, поэтому его нужно залить на пару дисков через загрузчик.

Но ничто не мешает другому пользователю получить то же самое письмо — допустим, указаны два получателя. Помните, что FileDB еще не имеет этого файла, поэтому еще один загрузчик будет загружать этот самый файл и может выбрать ту же пару дисков для загрузки.

Nginx, скорее всего, решит эту ситуацию правильно, но нам нужно контролировать весь процесс, поэтому мы сохраним файл со сложным именем.

Часть имени, выделенная красным цветом, — это место, где каждый загрузчик помещает случайное число. Таким образом, два метода PUT не будут перекрываться и загружать два разных файла. Как только nginx отвечает 201 (ОК), первый загрузчик выполняет атомарную операцию MOVE , которая указывает окончательное имя файла.

Когда второй загрузчик завершит загрузку файла и также выполнит MOVE , файл перезапишется, но ничего страшного, ведь файл один и тот же. Как только файл окажется на дисках, необходимо добавить новую запись в FileDB. Наша версия Tarantool разделена на два пространства. До сих пор мы использовали только space0 .

Однако вместо простого добавления новой записи в FileDB мы используем хранимую процедуру, которая либо увеличивает счетчик файлов, либо добавляет новую запись в FileDB. Почему? За то время, которое прошло с тех пор, как загрузчик убедился, что файл не существует в FileDB, загрузил его и приступил к добавлению новой записи в FileDB, кто-то другой мог загрузить этот файл и добавить соответствующую запись. Мы рассмотрели именно такой случай: на одно письмо указываются два получателя, поэтому загружать файл начинают два загрузчика; как только второй загрузчик завершает загрузку, он также добавляет новую запись в FileDB.

В этом случае второй загрузчик просто увеличивает счетчик файлов.

Теперь рассмотрим метод dec . У нашей системы есть две первоочередные задачи: надежно записать файл на диск и быстро отдать его клиенту с этого диска. Физическое удаление файла создает определенную нагрузку и замедляет выполнение этих двух задач. Вот почему мы выполняем удаление в автономном режиме. Сам метод dec уменьшает значение счетчика. Если последнее становится равным 0, как и магическое число, то это означает, что файл больше никому не нужен, поэтому мы перемещаем соответствующую запись из пробел0 в пробел1 в Tarantool.

декремент (sha1, магия) {
    прилавок--
    current_magic –= магия
    если (счетчик == 0 && current_magic == 0){
        двигаться (ша1, пробел1)
    }
}
 

Valkyrie

В каждом хранилище есть демон Valkyrie, который следит за целостностью и согласованностью данных и работает с space1 . На каждый диск приходится один экземпляр демона. Демон выполняет итерацию по всем файлам на диске и проверяет наличие пробела1 9. 0228 содержит запись, соответствующую конкретному файлу, что означает, что этот файл следует удалить.

Но после вызова метода dec и перемещения файла в space1 Valkyrie может потребоваться некоторое время, чтобы найти этот файл. Это означает, что за время между этими двумя событиями файл может быть перезалит и, таким образом, снова перемещен на space0 .

Вот почему Valkyrie также проверяет, существует ли файл в space0 . Если это так и pair_id соответствующей записи указывает на пару дисков, на которых работает данный экземпляр Valkyrie, затем запись удаляется из space1 .

Если в space0 не найдено ни одной записи, то файл является потенциальным кандидатом на удаление. Однако между запросом к space0 и физическим удалением файла все еще есть временное окно, в котором новая запись, соответствующая этому файлу, может появиться в space0 . Чтобы справиться с этим, мы помещаем файл в карантин.

Вместо удаления файла мы добавляем удалено и метку времени к его имени. Это означает, что мы физически удалим файл с временной меткой плюс некоторое время, указанное в файле конфигурации. Если произойдет сбой и файл будет удален по ошибке, пользователь придет, чтобы вернуть его. Мы сможем восстановить его и решить проблему без потери данных.

Теперь вспомним, что есть два диска, на каждом из которых работает экземпляр Valkyrie. Два экземпляра не синхронизированы. Отсюда вопрос: Когда запись должна быть удалена с пробел1 ?

Мы сделаем две вещи. Во-первых, для рассматриваемого файла давайте сделаем один из экземпляров Valkyrie мастером. Это легко сделать, используя первый бит имени файла: если он равен нулю, то disk0 является мастером; в противном случае disk1 является ведущим.

Введем задержку обработки. Напомним, что когда запись находится в space0 , она содержит поле magic для проверки согласованности. Когда запись перемещается на space1 , это поле не используется, поэтому поставим туда временную метку, соответствующую времени появления этой записи в space1 . Таким образом, главный инстанс Valkyrie начнет обрабатывать записи в space1 сразу, тогда как ведомый добавит некоторую задержку к метке времени и будет обрабатывать и удалять записи из space1 чуть позже.

У этого подхода есть еще одно преимущество. Если файл был ошибочно помещен в карантин на мастере, это будет видно из журнала, как только мы запросим мастер. При этом клиент, запросивший файл, вернется к слейву — и пользователь получит нужный файл.

Итак, мы рассмотрели ситуацию, в которой демон Valkyrie находит файл с именем sha1 , и этот файл (являющийся потенциальным кандидатом на удаление) имеет соответствующую запись в space1 . Какие еще варианты возможны?

Предположим, что файл находится на диске, но в FileDB нет соответствующей записи. Если в рассмотренном выше случае мастер-экземпляр Valkyrie по каким-то причинам какое-то время не работал, это будет означать, что у слейва было достаточно времени, чтобы поместить файл в карантин и удалить соответствующую запись из пробел1 . В этом случае мы также помещаем файл в карантин, используя sha1.deleted.timestamp .

Другая ситуация: запись существует, но указывает на другую пару дисков. Это могло произойти во время загрузки, если для одного письма указаны два получателя. Вспомните эту схему:

Что произойдет, если второй загрузчик загрузит файл в другую пару, чем первый? Он увеличит счетчик на space0 , но пара дисков, на которую был загружен файл, будет содержать несколько ненужных файлов. Что нам нужно сделать, так это убедиться, что эти файлы могут быть прочитаны и что они соответствуют ша1 . Если все в порядке, такие файлы можно сразу удалить.

Кроме того, Valkyrie может обнаружить файл, помещенный в карантин.

This entry was posted in Популярное