Кэширование и предоставление данных перед отправкой, относящихся к отправителю или получателю сообщения электронной почты
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Раскрыты технологии кэширования и предоставления данных перед отправкой, относящихся к отправителю или получателю сообщения электронной почты. Техническим результатом является сокращение числа ошибок отправителя за счет осуществления кэширования почтовых подсказок до отправки сообщения по электронной почте. Способ кэширования данных перед отправкой, относящихся к получателю или отправителю сообщения электронной почты. Способ включает в себя получение одной или более почтовых подсказок получателя до составления сообщения электронной почты. При этом почтовые подсказки получателя содержат, по меньшей мере, одно из указания того, что почтовый ящик получателя полон, или указания, относящегося к размеру списка рассылки, которому адресовано сообщение электронной почты. Способ также содержит получение от веб-службы одной или более конфигурационных почтовых подсказок, содержащих данные, относящиеся к отправителю сообщения электронной почты. Далее, согласно способу осуществляют кэширование почтовых подсказок получателя и конфигурационных почтовых подсказок с меткой времени, указывающей время, в которое почтовые подсказки получателя и конфигурационные почтовые подсказки кэшированы. 3 н. и 9 з.п. ф-лы, 9 ил.
Реферат
Уровень техники
Вследствие асинхронной сущности систем электронной почты (e-mail) может быть так, что сообщения электронной почты не доставляются успешно своим предполагаемым получателям. В этой связи, доставка сообщений электронной почты может не удаться по разным причинам. Например, может быть послано сообщение электронной почты, которое слишком велико для почтового ящика отправителя или получателя, почтовый ящик получателя может быть полным или сообщение электронной почты может быть адресовано слишком многим получателям, тем самым препятствуя его передаче. В дополнение к этому отправители электронной почты часто делают досадные и потенциально дорогостоящие ошибки при составлении сообщений электронной почты. Например, личное сообщение электронной почты может быть случайно послано большой аудитории, или сообщение электронной почты, содержащее конфиденциальный материал, может быть случайно послано получателям за пределами организации. В обоих этих сценариях отправитель способен обнаружить ошибку только после посылки сообщения электронной почты.
Именно применительно к этим и другим соображениям представляется сделанное здесь раскрытие.
Сущность
Здесь описываются технологии кэширования перед отправкой и предоставления данных, относящихся к отправителю или получателю сообщения электронной почты. В частности, посредством использования представленных здесь технологий, данные, которые могут уведомлять отправителя электронной почты о потенциальных рисках, связанных с посылкой сообщения электронной почты, или условиях, которые могут вызвать неудачу с доставкой сообщения электронной почты, получаются, отображаются в кэш-память и предоставляются отправителю электронной почты во время составления сообщения электронной почты. Посредством использования такой информации отправитель электронной почты может принять решение удалить получателей из сообщения электронной почты или принять решение не посылать сообщение.
В соответствии с одним представленным здесь аспектом предоставляется программа почтовый клиент, которая конфигурируется для получения, кэширования и предоставления подсказок электронной почты (упоминаемых здесь как «почтовые подсказки») отправителю электронной почты во время составления сообщения электронной почты. Почтовые подсказки являются свойствами, которые относятся к отправителю или получателю сообщения электронной почты и которые предоставляются отправителю электронной почты до посылки сообщения электронной почты. Одна категория почтовых подсказок, упоминаемых здесь как почтовые подсказки получателя, относятся к получателю сообщения электронной почты. Например, почтовые подсказки получателя могут указывать, когда почтовый ящик получателя полный, на максимальный размер сообщения, который может принять получатель, или что получатель в настоящее время находится вне офиса («OOF»). Другая категория почтовых подсказок, называемых почтовыми подсказками конфигурации, относится к отправителю сообщения электронной почты. Конфигурационные почтовые подсказки могут указывать, например, что сообщение электронной почты слишком велико, чтобы быть посланным отправителем электронной почты, или что составляемое сообщение электронной почты вызовет превышение предела отправления почтового ящика отправителя электронной почты.
В соответствии с другими аспектами программа почтовый клиент конфигурируется для кэширования почтовых подсказок получателя и конфигурации на клиентском компьютере. В частности, в одном варианте осуществления почтовые подсказки конфигурации получают с серверного компьютера и сохраняют на клиентском компьютере, когда запускается программа почтовый клиент. Почтовые подсказки получателя получают с серверного компьютера и отображают в кэш-память на клиентском компьютере, как только идентифицируется каждый получатель сообщения электронной почты. Например, почтовые подсказки получателя для получателя электронной почты могут быть получены с серверного компьютера, кэшироваться и отображаться отправителю электронной почты в тот момент, когда отправитель электронной почты предоставляет имя получателя электронной почты. Когда создаются последующие сообщения электронной почты, применяются почтовые подсказки, которые были кэшированы на клиентском компьютере для получателя электронной почты, вместо получения почтовых подсказок с серверного компьютера.
В соответствии с другими аспектами кэшированные почтовые подсказки могут периодически обновляться. Например, обновленные почтовые подсказки конфигурации могут быть получены и кэшироваться после того, как истек предопределенный период времени (например, 24 часа) с тех пор, как почтовые подсказки конфигурации были получены в последний раз. Кэш некоторых почтовых подсказок получателя, которые, по-видимому, часто меняются, может также обновляться, после того как истекает предопределенный период времени. Кэш почтовых подсказок конфигурации и почтовых подсказок получателя может также применяться, когда клиентская программа не в сети или не способна установить связь с серверным компьютером.
В соответствии с другими аспектами обеспечивается пользовательский интерфейс для предоставления почтовых подсказок отправителю электронной почты. Следует учесть, что описанный выше предмет изобретения может быть также осуществлен в виде прибора, управляемого компьютером, компьютерного процесса, вычислительной системы или в виде изделия, такого как читаемый компьютером носитель. Эти и различные другие признаки будут очевидны из чтения следующего Подробного описания и обзора соответствующих чертежей.
Эта Сущность предоставляется для введения выборочной совокупности принципов в упрощенном виде, которые далее описываются ниже в Подробном описании. Эта Сущность не предназначена для выявления ключевых признаков или существенных признаков заявленного предмета изобретения, равно как и не предполагается, что эта Сущность будет использоваться для ограничения объема заявленного предмета изобретения. Более того, заявленный предмет изобретения не ограничивается осуществлениями, которые разрешают какие-либо или все недостатки, отмеченные в любой части этого раскрытия.
Краткое описание чертежей
Фиг.1 представляет собой архитектурную диаграмму сети и программного обеспечения, показывающую аспекты показательной операционной среды и нескольких компонентов программного обеспечения, предоставляемых представленными здесь вариантами осуществления;
Фиг.2-5 - это схемы последовательности операций, иллюстрирующие работу почтового клиента по получению, кэшированию, предоставлению и обновлению почтовых подсказок в различных вариантах осуществления, представленных здесь;
Фиг.6-8 - это схематические представления экрана, показывающие различные пользовательские интерфейсы для предоставления почтовых подсказок отправителю электронной почты и для конфигурирования экрана почтовых подсказок в вариантах осуществления, представленных здесь; и
Фиг.9 представляет собой архитектурную диаграмму компьютера, показывающую пояснительную архитектуру оборудования и программного обеспечения компьютера для вычислительной системы, способной выполнить аспекты вариантов осуществления, представленных здесь.
Подробное описание
Здесь представлены технологии кэширования и предоставления данных перед отправкой, относящихся к отправителю или получателю сообщения электронной почты. Несмотря на то, что предмет изобретения, описанный здесь, представлен в общем контексте программных модулей, которые выполняются в сочетании с исполнением операционной системы и прикладных программ на компьютерной системе, специалисты в данной области определят, что другие варианты осуществления могут быть выполнены в комбинации с другими типами программных модулей. Как правило, программные модули включают в себя подпрограммы, программы, компоненты, структуры данных и другие типы структур, которые выполняют конкретные задачи или внедряют конкретные типы абстрактных данных. Более того, специалисты в данной области поймут, что предмет изобретения, описанный здесь, может быть осуществлен на практике с другими конфигурациями компьютерной системы, включая портативные устройства, мультипроцессорные системы, микропроцессорную или программируемую бытовую электронику, миникомпьютеры, универсальные вычислительные машины и тому подобное.
В последующем подробном описании делаются ссылки на прилагаемые чертежи, которые составляют его часть и которые показаны в качестве иллюстрации конкретных вариантов осуществления или примеров. Ссылаясь теперь на чертежи, в которых подобные цифры представляют подобные элементы на протяжении нескольких чертежей, будут описаны аспекты вычислительной системы и принцип кэширования и предоставления перед отправкой данных, относящихся к отправителю или получателю сообщения электронной почты.
Обращаясь теперь к Фиг.1, будут даны детали относительно показательной операционной среды и нескольких компонентов программного обеспечения, предоставляемых вариантами осуществления, представленными здесь. В частности, Фиг.1 показывает аспекты системы 100, способной кэшировать и предоставлять перед отправкой данные, относящиеся к отправителю или получателю сообщения 114 электронной почты. Система 100 включает в себя клиентский компьютер 102 и серверный компьютер 104. Как показано на Фиг.1, клиентский компьютер 102 и серверный компьютер 104 связаны посредством одной или более локальных или глобальных сетей, таких как сеть 106. Следует учесть, что может использоваться гораздо больше сетевых соединений, чем проиллюстрировано на Фиг.1. Следует также учесть, что хотя на Фиг.1 проиллюстрированы только один клиентский компьютер 102 и один серверный компьютер 104, в вариантах осуществления могут применяться гораздо больше таких вычислительных систем.
Как показано на Фиг.1, клиентский компьютер 102 сконфигурирован для выполнения почтового клиента 108. Как известно в этой области техники, почтовый клиент 108 является компьютерной программой, сконфигурированной для того, чтобы разрешить пользователю клиентского компьютера 102, упоминаемому здесь как отправитель, создать и передать почтовое сообщение 114. Для того чтобы почтовый клиент 108 передал почтовое сообщение 114, он должен действовать в сочетании с почтовой серверной программой 110, выполняющейся на серверном компьютере 104.
Почтовая серверная программа 110 конфигурируется для получения запроса на передачу почтового сообщения 114 от почтового клиента 108 и для направления почтового сообщения 114 через подходящие серверные компьютеры для доставки своему предполагаемому получателю. Почтовый клиент 108 также конфигурируется для работы в сочетании с почтовым сервером 110 для получения почтовых сообщений от имени пользователя клиентского компьютера 102. В этой связи, почтовый сервер 110 может поддерживать почтовый ящик 112 для хранения входящих и исходящих сообщений пользователя клиентского компьютера 102. Следует учесть, что почтовый клиент 108 и почтовый сервер 110 могут обеспечить большое количество дополнительных функциональных свойств в отношении посылки и получения почтовых сообщений помимо функциональных свойств, представленных здесь. Одним примером почтового клиента 108 является почтовый клиент OUTLOOK от Корпорации Майкрософт (Редмонд, Вашингтон). Одним примером почтового сервера 110 является почтовый сервер EXCHANGE, также от Корпорации Майкрософт. Следует, однако, учесть, что представленные здесь варианты осуществления могут применяться с почтовыми клиентами и серверами от других фирм.
Как кратко описывалось выше, почтовый клиент 108, предоставляемый здесь, конфигурируется также для получения, кэширования и предоставления одной или более почтовых подсказок отправителю электронной почты во время составления сообщения электронной почты. Почтовые подсказки являются свойствами, которые относятся к отправителю или получателю сообщения электронной почты и которые предоставляются отправителю электронной почты до посылки сообщения электронной почты. Путем предоставления почтовых подсказок отправителю сообщения электронной почты перед посылкой электронной почты пользователь ставится в известность о последствиях посылки сообщения до его фактической передачи. Таким образом, пользователь может принимать обоснованные решения и потенциально менять получателей сообщения электронной почты или принимать решение не посылать сообщение вообще.
Одна категория почтовых подсказок, упоминаемых здесь как почтовые подсказки получателя, относится к получателю сообщения электронной почты. Например, почтовые подсказки получателя могут указывать, когда почтовый ящик получателя полный, когда пользователь имеет недостаточно прав для посылки электронной почты на конфиденциальный список рассылки или почтовый ящик, когда размер исходящего сообщения больше, чем максимальный размер сообщения, который может принять получатель, или когда входят в домен адресов электронной почты, который не может быть подтвержден. Другие примеры почтовых подсказок получателя включают в себя почтовые подсказки, указывающие, когда адрес электронной почты получателя не является частью организации отправителя, когда список рассылки содержит один или более адресов электронной почты, которые не являются частью организации, когда число членов списка рассылки больше, чем предопределенное значение, когда список рассылки имеет модератора, который просматривает и фильтрует сообщения перед отправлением их членам списка рассылки, когда получатель указал, что он находится вне офиса, когда список рассылки или почтовый ящик имеет заданное специализированное сообщение пользователя, когда внутренний адрес электронной почты не может быть подтвержден или когда делается попытка послать большое сообщение большому числу получателей.
Другая категория почтовых подсказок, упоминаемых здесь как почтовые подсказки конфигурации, являются почтовыми подсказками, которые относятся к отправителю сообщения электронной почты. Конфигурационные подсказки могут указывать, например, что сообщение электронной почты слишком велико, чтобы быть посланным отправителем электронной почты, или что составляемое сообщение электронной почты заставит почтовый ящик отправителя электронной почты превысить свой лимит отправления. Следует учесть, что почтовые подсказки получателя и конфигурационные почтовые подсказки, установленные выше, являются просто пояснительными, и что любая другая информация, относящаяся к отправителю или получателю сообщения электронной почты, может быть представлена пользователю в виде почтовой подсказки, как описано здесь.
Для того чтобы представить почтовые подсказки пользователю клиентского компьютера 102 до или в течение составления почтового сообщения 114, почтовый клиент 108 конфигурируется для работы в сочетании с веб-службой 116, выполняющейся на серверном компьютере 104. Веб-служба 116 получает и отвечает на вызовы от почтового клиента 108 для почтовых подсказок, связанных с отправителем или получателем сообщения 114 электронной почты. В частности, веб-служба 116 поддерживает хранилище 118 данных почтовых подсказок. Конфигурационные почтовые подсказки 120 сохраняются в хранилище 118 данных, которое соответствует отправителям электронной почты. Почтовые подсказки 122 получателя также сохраняются в хранилище 118 данных, которое соответствует различным получателям.
В одном варианте осуществления, представленном здесь, почтовый клиент 108 применяется для получения конфигурационных почтовых подсказок 120 и почтовых подсказок получателя 122 от веб-службы 116 и для кэширования почтовых подсказок на клиентском компьютере 102. Кэшируя почтовые подсказки, почтовый клиент 108 может уменьшить количество трафика, передаваемого по сети 106, во время создания почтового сообщения 114.
В одном осуществлении почтовый клиент 108 сохраняет почтовые подсказки, полученные от веб-службы 116, в кэше почтовых подсказок 126. В соответствии с одним осуществлением конфигурационные почтовые подсказки 120 сохраняются в реестре клиентского компьютера 102. В этом варианте осуществления почтовые подсказки 122 получателя сохраняются в оперативном запоминающем устройстве клиентского компьютера 102. Следует, однако, учесть, что кэш 126 почтовых подсказок может сохраняться другими способами в других вариантах осуществления, как, например, на массовом запоминающем устройстве клиентского компьютера 102. Другие механизмы для сохранения почтовых подсказок, полученных с веб-службы 116, могут также применяться клиентским компьютером 102.
Как будет описано более подробно ниже, в одном представленном здесь варианте осуществления почтовый клиент 108 конфигурируется для получения конфигурационных почтовых подсказок 120 с веб-службы 116 в то время, когда запускается почтовый клиент 108. Следует учесть, однако, что конфигурационные почтовые подсказки 120 могут быть получены с веб-службы 116 в любое время до составления почтового сообщения 114. В соответствии с другими аспектами почтовые подсказки 122 получателя получают с веб-службы 116 в тот момент, когда каждый получатель сообщения 114 электронной почты идентифицируется пользователем клиентского компьютера 102. Например, почтовые подсказки получателя 122 могут быть получены с веб-службы 116, сохраняться в кэше 126 почтовых подсказок и отображаться для пользователя клиентского компьютера 102 в то время, когда отправитель предоставляет имя каждого получателя электронной почты. В вариантах осуществления служба 124 каталогов может исполняться на серверном компьютере 104 для разрешения имен получателей электронной почты. В одном варианте осуществления почтовые подсказки 122 получателя не получают с веб-службы 116, пока получатель электронной почты не разрешен, например, через использование службы 124 каталогов.
Когда создаются последующие сообщения электронной почты, применяются почтовые подсказки, которые были сохранены в кэше 126 почтовых подсказок, вместо того чтобы снова получать почтовые подсказки с веб-службы 116. Например, если почтовые подсказки 122 получателя были заранее кэшированы для получателя, и этот получатель идентифицируется в последующем почтовом сообщении 114, применяются почтовые подсказки получателя, сохраненные в кэше 126 почтовых подсказок, а не получаются новые почтовые подсказки 122 получателя с веб-службы 116.
Как также будет описано более подробно ниже, почтовые подсказки, сохраненные в кэше почтовых подсказок 126, могут периодически обновляться. Например, обновленные конфигурационные почтовые подсказки 120 могут быть получены с веб-службы 116 после того, как истек предопределенный период времени с тех пор, как конфигурационные почтовые подсказки 120 были получены в последний раз. Например, в одном осуществлении конфигурационные почтовые подсказки 120 кэшируются не менее чем на двадцать четыре часа. Конфигурационные почтовые подсказки 120 обновляются в то время, когда устанавливается первый сеанс с почтовым сервером 110 после того, как прошел двадцати-четырех-часовой период. Если пользователь по-прежнему находится в том же сеансе с последнего раза, как конфигурационные почтовые подсказки 120 были кэшированы, когда истек двадцати-четырех-часовой период, конфигурационные почтовые подсказки 120, сохраненные в кэше почтовых подсказок 126, будут удалены, и веб-служба 116 будет запрошена по поводу обновленных конфигурационных почтовых подсказок 120. Аналогично, в одном варианте осуществления почтовые подсказки 122 получателя удаляются каждый раз, как почтовый клиент 108 выключается.
Некоторые почтовые подсказки 122 получателя, которые, вероятно, часто меняются, также могут обновляться после того, как истекает предопределенный период времени. Например, почтовая подсказка, соответствующая условию полного почтового ящика, и почтовая подсказка, соответствующая нахождению пользователя вне офиса, могут обновляться с веб-службы 116 после того, как истек предопределенный период, например один час. Другие почтовые подсказки могут также обновляться аналогичным образом. Для того чтобы обновлять эти почтовые подсказки по такому расписанию, для этих почтовых подсказок внутри кэша почтовых подсказок 126 может сохраняться метка времени. Дополнительные детали, касающиеся получения, кэширования, отображения и обновления конфигурационных почтовых подсказок 120 и почтовых подсказок 122 получателя, будут предоставлены ниже применительно к Фиг.2-8.
В соответствии с другими аспектами части кэша почтовых подсказок 126 могут применяться, когда почтовый клиент 108 не в сети и не способен установить соединение с почтовым сервером 110 и веб-службой 116. Например, конфигурационные почтовые подсказки 120, сохраняемые в кэше почтовых подсказок 126, могут непосредственно использоваться, когда почтовый клиент 108 находится не в сети. Для того чтобы использовать почтовые подсказки 122 получателя, когда почтовый клиент 108 находится не в сети, эти почтовые подсказки могут сохраняться во внесетевой адресной книге 128. Как показано на Фиг.1, внесетевая адресная книга 128 устанавливает число контактов 130, включая их адреса электронной почты, и может также включать в себя почтовые подсказки 122 получателя. Когда почтовый клиент 108 возвращается в сетевое состояние, обновленные почтовые подсказки могут быть получены с веб-службы 116.
Обращаясь теперь к Фиг.2, будут предоставлены дополнительные детали, касающиеся представленных здесь вариантов осуществления для кэширования и предоставления перед отправкой данных, относящихся к отправителю или получателю сообщения электронной почты. В частности, Фиг.2 представляет собой схему последовательности операций, иллюстрирующую аспекты работы почтового клиента 108 по получению и кэшированию конфигурационных почтовых подсказок 120. Следует учесть, что логические операции, описанные здесь, осуществляются (1) как последовательность осуществленных на компьютере этапов или программных модулей, запускаемых на вычислительной системе, и/или (2) как взаимосвязанные машинные логические схемы или схемные модули внутри вычислительной системы. Осуществление является предметом выбора, зависящим от производительности и других требований вычислительной системы. Соответственно, логические операции, описанные здесь, упоминаются под разными именами как операции состояний, структурные устройства, этапы или модули. Эти операции, структурные устройства, этапы и модули могут быть осуществлены в программном обеспечении, в программно-аппаратном обеспечении, в специализированной цифровой логике и в любой их комбинации. Следует также учесть, что может выполняться большее или меньшее количество операций, чем показано на чертежах и описано здесь. Эти операции могут также выполняться в другом порядке, чем те, что здесь описаны.
Подпрограмма 200 начинается с операции 202, где пользователь запускает почтовый клиент 108 на клиентском компьютере 102. Как только почтовый клиент 108 запущен, подпрограмма 200 переходит к операции 204, где принимается решение, истек ли предопределенный период, с тех пор как в последний раз были получены конфигурационные почтовые подсказки 120. Как обсуждалось выше, этот предопределенный период устанавливается равным двадцати четырем часам в одном осуществлении. Следует учесть, однако, что любой предопределенный период может быть установлен для запуска обновления конфигурационных почтовых подсказок 120, сохраненных в кэше почтовых подсказок. Если при операции 204 почтовый клиент 108 определяет, что предопределенное время не истекло, подпрограмма 200 переходит к операции 216, где она заканчивается. Если, однако, предопределенный период истек, подпрограмма 200 переходит от операции 204 к операции 206.
При операции 206 делается определение, доступна ли веб-служба 116. Если веб-служба 116 в настоящий момент недоступна, подпрограмма 200 переходит от операции 206 к операции 208, где почтовый клиент 108 уведомляется, что веб-служба 116 недоступна. Кроме того, веб-служба 116 запрашивается повторно после того, как истек предопределенный период времени, например 15 минут. После того, как веб-служба 116 была запрошена повторно, подпрограмма 200 переходит к операции 209, где делается еще одно определение относительно того, доступна ли веб-служба 116. Если веб-служба 116 недоступна, подпрограмма 200 переходит от операции 209 к операции 208, описанной выше. Если веб-служба 116 доступна, подпрограмма 200 переходит от операции 209 к операции 210. Если при операции 206 почтовый клиент 108 определяет, что веб-служба 116 доступна, подпрограмма 200 переходит от операции 206 к операции 210.
При операции 210 почтовый клиент 108 запрашивает конфигурационные почтовые подсказки 120 с веб-службы 116. Подпрограмма 200 затем переходит к операции 212, где почтовый клиент 108 получает конфигурационные почтовые подсказки 120 от веб-службы 116. Как только конфигурационные почтовые подсказки 120 получены, подпрограмма 200 переходит к операции 214, где почтовый клиент 108 сохраняет конфигурационные почтовые подсказки 120 в кэше почтовых подсказок 126. Если конфигурационные почтовые подсказки 120 были предварительно сохранены в кэше почтовых подсказок 126, предварительно сохраненные конфигурационные почтовые подсказки 120 могут быть удалены до сохранения обновленных конфигурационных почтовых подсказок 120 или просто перезаписаны. Как только конфигурационные почтовые подсказки 120 сохранены в кэше почтовых подсказок 126, подпрограмма 200 переходит от операции 214 к операции 216, где она заканчивается.
Обращаясь теперь к Фиг.3, будет описана показательная подпрограмма 300, иллюстрирующая операции, выполняемые почтовым клиентом 108 по получению, кэшированию и отображению почтовых подсказок 122 получателя. Подпрограмма 300 начинается с операции 302, где пользователь почтового клиента 108 вводит данные получателя для нового почтового сообщения 114. Например, пользователь может ввести имя предполагаемого получателя или непосредственно ввести адрес электронной почты предполагаемого получателя.
Как только пользователь ввел данные получателя, подпрограмма 300 переходит к операции 304, где делается попытка разрешить введенные данные получателя в действующий адрес электронной почты. Как обсуждалось выше, может произойти обращение за справкой к службе 124 каталогов, для того чтобы попытаться разрешить адрес электронной почты. В соответствии с другими вариантами осуществления, кэш под кодовым названием, сохраняющий информацию из почтовых сообщений 114, предварительно посланных почтовым клиентом 108, может также применяться в помощь при разрешении данных получателя. Адресная книга 128 или глобальная адресная книга, сохраняемая на серверном компьютере 104, может также применяться для разрешения адреса электронной почты получателя. От операции 304 подпрограмма 300 переходит к операции 306.
При операции 306 делается определение, были ли данные получателя однозначно сведены к действующему адресу электронной почты. Если данные получателя не были однозначно разрешены, подпрограмма 300 переходит к операции 308, где пользователю предоставляется возможность помочь в процессе разрешения. Например, пользователю может быть позволено ввести заново данные получателя или выбрать один из нескольких адресов электронной почты получателя. Если при операции 306 определяется, что данные получателя были однозначно разрешены, подпрограмма 300 переходит от операции 306 к операции 310.
При операции 310 почтовый клиент 108 запрашивает веб-службу 116 о любых почтовых подсказках 122 получателя, соответствующих идентифицированному адресу электронной почты получателя. Подпрограмма 300 затем переходит к операции 310, где делается определение, применяются ли какие-либо почтовые подсказки к получателю или отправителю сообщения 114 электронной почты. Если почтовые подсказки не применяются, подпрограмма 300 переходит к операции 320, где она заканчивается. Если какие-либо почтовые подсказки применяются, подпрограмма 300 переходит от операции 312 к операции 314, где любые почтовые подсказки 122 получателя, доступные с веб-службы 116, получают и сохраняются в кэше почтовых подсказок 126. Подпрограмма 300 затем переходит к операции 316, где делается определение, отобразил ли почтовый клиент 108 разрешенное имя получателя. Если разрешенное имя еще не было отображено, подпрограмма 300 возвращается к операции 316. Если разрешенное имя было отображено, подпрограмма 300 переходит к операции 318, где конфигурационные почтовые подсказки 120 и почтовые подсказки 122 получателя для почтового сообщения отображаются. Путем выполнения операции 316 о принятии решения, почтовый клиент 108 обеспечивает, что почтовые подсказки для получателя не отображаются до тех пор, пока не отображается разрешенное имя получателя. Наглядный пользовательский интерфейс для отображения почтовых подсказок будет описан ниже применительно к Фиг.6-7. От операции 318 подпрограмма 300 переходит к операции 320, где она заканчивается.
Обращаясь теперь к Фиг.4, будет описана показательная подпрограмма 400, иллюстрирующая операции, выполняемые почтовым клиентом 108 по обновлению контентов кэша почтовых подсказок 126, когда создается новое почтовое сообщение 114. Как кратко обсуждалось выше, почтовый клиент 108 будет обновлять некоторые почтовые подсказки 122 получателя, сохраненные в кэше почтовых подсказок 126, которые, вероятно, часто меняются. Как уже кратко обсуждалось выше, для того чтобы это выполнить, почтовый клиент 108 сохраняет метку времени с каждой из этих почтовых подсказок в то время, когда они сохраняются в кэше 126 почтовых подсказок. Когда создается новое почтовое сообщение 114, эта метка времени изучается, чтобы определить, нуждаются ли почтовые подсказки получателя в обновлении с веб-службы 116. Подпрограмма 400, проиллюстрированная на Фиг.4, показывает этот процесс в одном варианте осуществления, представленном здесь.
При операции 402 создается новое почтовое сообщение 114, и идентифицируются получатели почтового сообщения. Подпрограмма 400 затем переходит к операции 404, где почтовый клиент 108 определяет, были ли почтовые подсказки 122 получателя предварительно кэшированы для какого-либо получателя нового почтового сообщения. Если нет, подпрограмма 400 переходит к операции 414, где она заканчивается. В этом случае веб-служба 116 будет запрашиваться по поводу любых почтовых подсказок 122 получателя, соответствующих получателям нового почтового сообщения, и эти почтовые подсказки будут сохраняться в кэше 126 почтовых подсказок.
Если почтовые подсказки 122 получателя были предварительно сохранены в кэше 126 почтовых подсказок для кого-либо из получателей нового почтового сообщения, подпрограмма 400 переходит к операции 406. При операции 406 почтовый клиент 108 определяет, истекли ли какие-либо из меток времени почтовых подсказок для почтовых подсказок 122 получателя, сохраненных в кэше почтовых подсказок. Если да, то подпрограмма 400 переходит к операции 408, где почтовый клиент 108 повторно запрашивает веб-службу 116 про обновленные почтовые подсказки 122 получателя. Подпрограмма 400 затем переходит к операции 410, где любые обновленные почтовые подсказки 122 получателя, полученные с веб-службы 116, сохраняются в кэше 126 почтовых подсказок. Метка времени, ассоциированная с почтовыми подсказками 122 получателя, также обновляется, чтобы отразить время, в которое обновленные почтовые подсказки 122 получателя были получены с веб-службы 116. От операции 410 подпрограмма 400 переходит к операции 412.
Если при операции 406 почтовый клиент 108 определяет, что метка времени почтовых подсказок не истекла, подпрограмма 400 переходит к операции 412. При операции 412 почтовые подсказки 122 получателя, сохраненные в кэше почтовых подсказок 126 для получателей нового почтового сообщения 114, получают и отображаются. Как кратко обсуждалось выше, пользовательский интерфейс для отображения почтовых подсказок будет описываться более подробно ниже применительно к Фиг.6-7. От операции 412 подпрограмма 400 переходит к операции 414, где она заканчивается.
Обращаясь теперь к Фиг.5, будет описана показательная подпрограмма 500, иллюстрирующая процесс, выполняемый почтовым клиентом 108 по обновлению контентов кэша 126 почтовых подсказок для почтового сообщения 114, которое создается, но остается непосланным. Эта подпрограмма выполняется, например, когда пользователь клиентского компьютера 102 создает почтовое сообщение 114, но не посылает немедленно почтовое сообщение 114. Например, пользователь может ввести получателей почтового сообщения 114 и оставить новое сообщение 114 в центре внимания, но не предпринимать другого действия в течение какого-то периода времени. В качестве альтернативы пользователь может создать новое почтовое сообщение 114, ввести получателей нового почтового сообщения 114 и переключить внимание на другое приложение или операционную систему клиентского компьютера 102. Когда пользователь возвращается к почтовому сообщению 114, может понадобиться обновить контенты кэша почтовых подсказок 126. Подпрограмма 500, проиллюстрированная на Фиг.5, показывает один процесс, выполняемый почтовым клиентом 108 для выполнения этого.
Подпрограмма 500 начинается с операции 502, где почтовый клиент 108 определяет, оказалось ли вновь в центре внимания непосланное почтовое сообщение, которое включает в себя получателя, для которого почтовые подсказки 122 получателя были предварительно сохранены в кэше 126 почтовых подсказок. Если непосланное почтовое сообщение не включает в себя почтовые подсказки 122 получателя для получателя, подпрограмма 500 переходит от операции 502 к операции 514, где она заканчивается. Если, однако, непосланное почтовое сообщение включает в себя получателя, для которого почтовые подсказки 122 получателя были заранее кэшированы, подпрограмма 500 переходит к операции 504.
При операции 504 почтовый клиент 108 определяет, истек ли таймер повторного запроса. В одном осуществлении таймер повторного запроса устанавливается почтовым клиентом 108 для указания того, когда должен быть сделан повторный запрос на веб-службу 116 по поводу почтовых подсказок 122 получателя. В одном варианте осуществления назначенный на определенное время повторный запрос выполняется почтовым клиентом 108 по истечении одного часа. Следует учесть, однако, что может использоваться любой период времени. Если таймер повторного запроса не истек, подпрограмма 500 ответвляется от операции 504 на операцию 512, описанную ниже. Если таймер повторного запроса истек, подпрограмма 500 переходит от операции 504 к операции 506.
При операции 506 почтовый клиент 108 определяет, истекла ли метка времени почтовых подсказок, чтобы почтовые подсказки 122 получателя обновлялись. Как обсуждалось выше, метка времени почтовых подсказок устанавливается для тех почтовых подсказок 122 получателя, которые могут часто изменяться, в тот момент времени, когда эти почтовые подсказки 122 получателя сохраняются в кэше почтовых подсказок. Если метка времени почтовых подсказок не истекла, подпрограмма 500 переходит от операции 506 к операции 512, описанной ниже. Если, однако, метка времени почтовых подсказок истекла, подпрограмма 500 ответвляется от операции 506 на операцию 508.
При операции 508 почтовый клиент 108 повторно запрашивает веб-службу 116 об обновленных почтовых подсказках 122 получателя. Подпрограмма 500 затем переходит к операции 510, где обновленные почтовые подсказки 122 получателя принимаются с веб-службы 116 и сохраняются в кэше 126 почтовых подсказок. Метка времени, ассоциированная с любыми часто меняющимися почтовыми подсказками 122 получателя, также обновляется. От операции 510 подпрограмма 500 переходит к операции 512, где почтовый клиент 108 получает кэшированные почтовые подсказки 122 получателя из кэша 126 почтовых подсказок для получателей непосланного почтового сообщения 114, и отображает их. Показательный пользовательский интерфейс для отображения почтовых подсказок будет обсуждаться ниже применительно к Фиг.6-7. От операции 512 подпрограмма 500 переходит к операции 514, где она заканчивается.
Обращаясь теперь к Фиг.6, будет описан показательный пользовательский интерфейс 600, который предоставляется почтовым клиентом 1