КЭШИРОВАНИЕ И ПРЕДОСТАВЛЕНИЕ ДАННЫХ ПЕРЕД ОТПРАВКОЙ, ОТНОСЯЩИХСЯ К ОТПРАВИТЕЛЮ ИЛИ ПОЛУЧАТЕЛЮ СООБЩЕНИЯ ЭЛЕКТРОННОЙ ПОЧТЫ
CACHING AND PROVIDING PRE-SEND DATA RELATING TO SENDER OR RECIPIENT OF ELECTRONIC MAIL MESSAGE

Уровень техники
Вследствие асинхронной сущности систем электронной почты (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, который предоставляется почтовым клиентом 108. Пользовательский интерфейс 600, показанный на Фиг.6, может применяться традиционным образом, чтобы задавать получателей почтового сообщения 114. Например, как показано на Фиг.6, предоставляются поля для определения получателей почтового сообщения 114, задающие тему и вставляющие текст сообщения. В соответствии с осуществлениями пользовательский интерфейс 600 применяется также почтовым клиентом 108 для предоставления конфигурационных почтовых подсказок 120 и почтовых подсказок 122 получателя отправителю электронной почты.
Как показано на Фиг.6, пользовательский интерфейс 600 включает в себя рамку строки почтовой подсказки 602. Рамка строки почтовой подсказки включает в себя общую область, предназначенную для описания почтовых подсказок. В соответствии с вариантами осуществления рамка строки почтовой подсказки 602 может быть отображена различными цветами в зависимости от серьезности отображаемых почтовых подсказок. Более того, как будет описано ниже применительно к Фиг.7, рамка строки почтовой подсказки 602 может быть расширена, если нужно отобразить многочисленные почтовые подсказки или если одна почтовая подсказка относится ко многим получателям.
Пользовательский интерфейс 600 также включает в себя иконку 604 почтовой подсказки. Иконка 604 почтовой подсказки может меняться в зависимости от серьезности отображаемой почтовой подсказки. Рядом с иконкой 604 почтовой подсказки находится сообщение 606 почтовой подсказки. Сообщение 606 передает смысл выписки, о которой сообщается соответствующей почтовой подсказкой. Также предоставляется кнопка действия 608, которая разрешает пользователю выполнить действие по адресации выписки, описанной сообщением почтовой подсказки 606. Например, в осуществлении, показанном на Фиг.6, кнопка 608 действия может применяться для удаления получателя из почтового сообщения 114. Другие действия также могут быть предоставлены.
В соответствии с вариантами осуществления получатели адреса электронной почты идентифицируются в пользовательском интерфейсе 600. Например, может быть предоставлено имя 610, показывающее имя одного из предполагаемых получателей почтового сообщения 114. В одном варианте осуществления получатели почтового сообщения, для которых применяются почтовые подсказки 122 получателей, могут быть подсвечены, обозначены цветом или выделены другим способом для того, чтобы указать, что для этого конкретного пользователя присутствует почтовая подсказка. Таким образом, внимание отправителя может быть направлено от имени получателя 610 к рамке 602 строки почтовой подсказки, где было отображено сообщение 606 почтовой подсказки. Для того чтобы скрыть рамку 602 строки почтовой подсказки, может быть также предоставлена кнопка 612 «закрыть».
Обращаясь теперь к Фиг.7, будут предоставлены дополнительные детали относительно пользовательского интерфейса, описанного выше со ссылкой на Фигуру 6, для предоставления конфигурационных почтовых подсказок 120 и почтовых подсказок 122 получателя. Как кратко обсуждалось выше, рамка 602 строки почтовой подсказки может быть расширена, если нужно отобразить более двух почтовых подсказок или если одна почтовая подсказка относится к многочисленным получателям. Это иллюстрируется на Фиг.7. В частности, рамка 602 строки почтовой подсказки была расширена, чтобы показать сообщения почтовых подсказок для многочисленных получателей. Кроме того, одновременно может отображаться одна почтовая подсказка, которая относится к многочисленным получателям. Например, в примере, показанном на Фиг.7, иконка 704 почтовой подсказки отображается рядом с сообщением почтовой подсказки, соответствующим почтовой подсказке «вне офиса». Прилегающее к нему, было отображено сообщение «вне офиса», предоставленное многими получателями. Рядом с каждым из сообщений почтовых подсказок предоставляются кнопки действия, так чтобы пользователь мог удалить соответствующего получателя из почтового сообщения 114.
Обращаясь теперь к Фиг.8, будет описан показательный пользовательский интерфейс 800, который разрешает пользователю клиентского компьютера 102 настроить почтовые подсказки, которые отображаются почтовым клиентом 108. В частности, пользовательский интерфейс 800 предоставляет средства управления пользовательского интерфейса, которые разрешают пользователю клиентского компьютера 102 задавать почтовые подсказки, которые должны быть отображены почтовым клиентом 108. Например, пользователь может быть способен выбирать, отображать ли почтовые подсказки для конфиденциального списка рассылки или конфиденциального получателя. Пользователь может также быть способен определять, могут ли отображаться почтовые подсказки недоставленных сообщений, такие как почтовые подсказки о неверном адресе получателя, недействительном внешнем домене, слишком большом для получателя сообщении, слишком большом сообщении для посылки и о том, что почтовый ящик получателя полный.
Пользовательский интерфейс 800 может также разрешать пользователю определять, отображаются ли информационные почтовые подсказки 108 почтовым клиентом, такие как в случае, когда сообщение посылается большому списку рассылки или аудитории, большое сообщение посылается большой аудитории, получатель находится вне офиса, и внешний получатель идентифицируется в списке рассылки, или когда квота на почтовый ящик находится на пределе превышения. Как также проиллюстрировано на Фиг.8, администратор почтового сервера 110 может быть в состоянии закрыть опции, представленные в пользовательском интерфейсе 800. Таким образом, администратор почтового сервера 110 может заставить почтовые подсказки отображаться почтовым клиентом 108 или предотвратить отображение почтовых подсказок 108 почтовым клиентом.
В соответствии с другими аспектами пользовательский интерфейс 800 включает в себя средства управления пользовательского интерфейса, для того чтобы разрешить пользователю почтового клиента 108 задавать, чтобы рамка 602 строки почтовой подсказки отображалась все время или чтобы рамка 602 строки почтовой подсказки никогда не отображалась. Может быть также предоставлено средство управления пользовательского интерфейса, разрешающее пользователю задавать, чтобы рамка 602 строки почтовой подсказки отображалась, только когда почтовая подсказка относится к сообщению. Может также быть предоставлена опция, заставляющая почтовый клиент 108 автоматически расширять рамку 602 строки почтовой подсказки, когда многочисленные почтовые подсказки относятся к одному почтовому сообщению 114. Следует учесть, что средства управления пользовательского интерфейса и схема размещения, показанная на Фиг.6-8, являются просто пояснительными и что могут применяться другие типы средств управления пользовательского интерфейса, схемы размещения и форматы.
Фиг.9 показывает пояснительную компьютерную архитектуру, которая может применяться для осуществления клиентского компьютера 102. В частности, компьютерная архитектура, показанная на Фиг.9, иллюстрирует обычный рабочий стол, ноутбук или серверный компьютер и может применяться для выполнения любых аспектов компонентов программного обеспечения, представленных здесь, которые были описаны в качестве выполняемых на клиентском компьютере 102. Следует учесть, что архитектура, показанная на Фиг.9, может также применяться для осуществления серверного компьютера 104 и для выполнения компонентов программного обеспечения, описанных здесь в качестве выполняемых на серверном компьютере 104. Другие типы компьютерных архитектур могут также применяться для осуществления различных аспектов, представленных здесь.
Компьютерная архитектура, показанная на Фиг.9, включает в себя центральный обрабатывающий модуль 902 (ЦОМ), системную память 908, включающую оперативное запоминающее устройство 914 (ОЗУ) и постоянное запоминающее устройство (ПЗУ) 916, и системную шину 904, которая соединяет память с ЦОМ 902. Базовая система ввода/вывода, содержащая основные подпрограммы, которые помогают передавать информацию между элементами внутри клиентского компьютера 102, как, например, при запуске, сохраняется в ПЗУ 916. Клиентский компьютер 102 также включает в себя массовое запоминающее устройство 910 для хранения операционной системы 918, прикладных программ и других программных модулей, которые описываются здесь более подробно.
Массовое запоминающее устройство 910 соединено с ЦОМ 902 посредством контроллера устройства массовой памяти (не показан), соединенного с шиной 904. Массовое запоминающее устройство 910 и ассоциированные с ним носители, читаемые компьютером, обеспечивают энергонезависимое запоминающее устройство для клиентского компьютера 102. Хотя описание читаемых компьютером носителей, содержащееся здесь, относится к массовому запоминающему устройству, такому как жесткий диск или привод ПЗУ на компакт-дисках (CD-ROM), специалистам в данной области следует учесть, что читаемые компьютером носители могут быть любыми подходящими компьютерными носителями данных, к которым может осуществляться доступ с клиентского компьютера 102.
В качестве примера, а не ограничения, читаемые компьютером носители могут включать в себя энергозависимые и энергонезависимые, сменные и постоянно закрепленные носители, осуществленные любым способом или технологией для хранения информации, такой как читаемые компьютером инструкции, структуры данных, программные модули или другие данные. Например, читаемые компьютером носители включают в себя, в числе прочего, ОЗУ, ПЗУ, СППЗУ, ЭСППЗУ, флеш-память или другую технологию твердотельной памяти, CD-ROM, универсальные цифровые диски (DVD), HD-DVD, BLU-RAY или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, или любой другой носитель, который может быть использован для хранения желаемой информации и к которому может осуществляться доступ с клиентского компьютера 102.
В соответствии с различными вариантами осуществления клиентский компьютер 102 работает в сетевом окружении с использованием логических связей с удаленными компьютерами посредством сети, такой как сеть 106. Клиентский компьютер 102 может соединяться с сетью 106 посредством сетевого интерфейсного устройства 906, соединенного с шиной 904. Следует учесть, что сетевое интерфейсное устройство 906 может также применяться для соединения с другими типами сетей и систем удаленных компьютеров. Клиентский компьютер 102 может также включать в себя контроллер ввода/вывода 912 для получения и обработки ввода с ряда других устройств, включая клавиатуру, мышь или электронный стилус (не показаны на Фиг.9). Аналогично, контроллер ввода/вывода может обеспечить выход на экран дисплея, принтер или другой тип выходного устройства (также не показаны на Фиг.9).
Как кратко упоминалось выше, ряд программных модулей и файлов данных могут сохраняться в массовом запоминающем устройстве 910 и ОЗУ 914 клиентского компьютера 102, включая операционную систему 918, пригодную для управления работы сетевого рабочего стола, ноутбука или серверного компьютера. Массовое запоминающее устройство 910 и ОЗУ 914 могут также сохранять один или более программных модулей. В частности, массовое запоминающее устройство 910 и ОЗУ 914 могут сохранять почтового клиента 108 и кэш почтовых подсказок 126, каждый из которых был подробно описан выше применительно к Фиг.1-8. Массовое запоминающее устройство 910 и ОЗУ 914 могут также сохранять другие типы программных модулей.
На основе вышеизложенного следует учитывать, что здесь предоставляются технологии кэширования и предоставления перед отправкой данных, относящихся к отправителю или получателю сообщения электронной почты. Хотя предмет изобретения, представленный здесь, был описан языком, специфическим для структурных признаков компьютера, методологических этапов и читаемых компьютером носителей, следует понимать, что изобретение, определенное в прилагаемой формуле изобретения, не обязательно ограничивается конкретными признаками, этапами или носителями, описанными здесь. Точнее, конкретные признаки, этапы и носители раскрыты как примерные формы осуществления формулы изобретения.
Предмет изобретения, описанный выше, предоставляется только в качестве иллюстрации и не должен истолковываться как ограничение. Различные модификации и изменения могут быть сделаны с предметом изобретения, описанным здесь, без копирования примерных вариантов осуществления и приложений, иллюстрированных и описанных, и без отхода от истинной сущности и объема настоящего изобретения, которое излагается в следующей формуле изобретения.