Иногда старые идеи оказываются самыми удачными. В случае с почтовым ресурсом Gmail сотрудники отдела маркетинга компании Google «стряхнули паутину» с решения шестилетней давности и запустили его в ничего не подозревающий мир. Многие восприняли эту новость с энтузиазмом, но, несмотря на то что новая (и она же старая) функция Undo Send использует собственный подход, некоторые известные проблемы, характерные для механизмов отзыва сообщений, по-прежнему сохраняются.

Компания Google повысила статус экспериментальной функции Undo Send системы Gmail c бета-версии до полноценного решения, доступного для всех. Функция существует с 2009 года, когда она впервые была представлена миру компанией Google Labs. Остается загадкой, почему такой полезной функции потребовалось шесть лет, чтобы перейти в новое качество.

Принцип работы Undo Send достаточно прост. Измените настройки системы Gmail, чтобы активировать эту функцию и установить в качестве задержки интервал от 5 до 30 секунд. После этого при отправке сообщения в течение времени задержки будет доступна ссылка Undo Send. Нажатие на ссылку приводит к тому, что система Gmail извлекает сообщение из очереди отправки и помещает его в папку Drafts, где сообщение можно отредактировать, удалив любой кусок текста, из-за которого вы решили отменить отправку сообщения.

Задача такой функции, как Undo Send, проста: спасти пользователя от последствий отправки сообщения кому-то, для кого оно не было предназначено.

Мне нравится решение, предложенное компанией Google, оно кажется мне полезным, но у такого подхода есть ряд недостатков. Около четырех лет назад я писал о бесперспективности попыток отозвать отправленное сообщение, используя функцию Recall This Message в клиенте Outlook (эта функция присутствует и в версии Outlook 2016). Я отметил, что современные системы электронной почты так быстро обрабатывают сообщения, что любая попытка вернуть отправленное сообщение ни к чему не приведет, поскольку искомое сообщение, скорее всего, будет отправлено задолго до того, как пользователь решит его отозвать. В этом отношении решение от компании Google является продуманным, поскольку вы можете выбрать, на какое время задерживать сообщения (до 30 секунд), прежде чем сервер начнет обрабатывать их. Однако недостаток его состоит в том, что все сообщения задерживаются на выбранный временной интервал, и этот факт сводит на нет часть преимуществ.

Другие проблемы являются общими для современных механизмов отзыва. Прежде всего, у этих команд есть области действия, которые ограничены рамками почтовой системы. Ресурс Gmail представляет собой почтовую систему, и он может управлять обработкой любого сообщения в своих пределах. То же самое можно сказать и о других потребительских системах, таких как Outlook.com. Но в коммерческих системах электронной почты все по-другому. Возьмем локальный сервер Exchange. Сообщение, отправленное из почтового ящика, может иметь возможность отзыва, но может и не иметь, особенно если оно адресовано внешнему получателю. То же самое происходит внутри системы Exchange Online, где даже пользователи из других подписок Office 365 считаются внешними получателями и, следовательно, находятся за пределами границ, внутри которых предусмотрена возможность отзыва.

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

Но отдельной большой проблемой, продолжающей препятствовать тому, чтобы отзыв сообщений работал так, как хотелось бы, по-прежнему является распространение мобильных клиентов. Undo Send функционирует, если вы используете браузер для работы с системой Gmail. Но перейдите на почтовый клиент для системы iOS от компании Apple или на любой из бесчисленных почтовых клиентов, которые работают на устройствах с системой Android (включая Outlook for Android), и вы будете разочарованы, потому что в этих клиентах нет пользовательского интерфейса для выполнения отзыва сообщений. Это утверждение верно и в случаях, когда мобильные клиенты подключаются к системе Exchange.

В защиту разработчиков мобильных клиентов электронной почты отмечу, что они, вероятно, вряд ли могут повлиять на проблему, поскольку протоколы, на которые они опираются при подключении своих клиентов к системам Gmail или Exchange, не поддерживают понятий «отзыва сообщений» или «отмены отправки». Большинство мобильных клиентов подключаются к системе Gmail, используя протокол IMAP4, а протокол ActiveSync (EAS) является инструментом, применяемым при работе с системой Exchange, — ни один из них не поддерживает возможность отзыва сообщений. Протоколы знают лишь о том, что клиенты предоставляют сообщения для отправки, и сообщения считаются отправленными, как только они переданы на сервер.

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

И тогда мы могли бы вернуть помощника Clippy, чтобы он информировал пользователей о том, что им, возможно, стоит пересмотреть свое решение: «Прошу прощения. Я заметил, что вы назвали получателя письма идиотом. Вы хотите, чтобы я доставил сообщение?» Было бы замечательно!