Abstract: A system and method are disclosed for providing an extensible email having rich interactive browser capabilities. The system includes a service provider for receiving extensible emails from a third party platform and presenting the emails to a user s computing device. The extensible email includes URL metadata which allows a mail user agent to fetch and run code from a third party server in order to generate the extensible email. A secure sandbox ensures that the third party code does no damage to the service provider system or the user s computing system.
BACKGROUND
[0001] With the ubiquity of the Internet and computer networks, electronic mail
(email) has become the preferred method of communicating textual, graphical and other
digital information. Unlike conventional postal mail, email may arrive at its destination
within seconds or minutes of its sending, even where the recipient is across the globe.
Moreover, an email may be easily sent to multiple recipients. Most enterprise service
providers now support an email application program providing email accounts for its
subscribers.
[0002] A conventional email system operates using a mail user agent which is a
software application program used to send and receive emails. Examples include
Outlook® messaging and collaboration client and Hotmail® web-based e-mail service by
Microsoft Corporation, Redmond, WA. Regardless of whether local or web-based, mail
user agents have conventionally not been extensible. That is, conventional mail user
agents do not allow significant interactivity with web servers over the World Wide Web.
While it is common to embed URL addresses within an email, once a URL is selected, the
user is taken from the mail user agent, and the user accesses the selected web server URL
via the user's browser. Further interaction with the selected URL is then performed by the
browser, outside of the mail user agent.
[0003] Some truly extensible mail user agents are known which allow access to a web
server from within the mail user agent. However, allowing a web server's script to run
within a mail user agent presents security and operational issues for the host computing
system (the user's computing device or enterprise service provider). Once run within the
mail user agent on the host computing system, a web server's script could potentially
impair or interfere with the operation of one or more applications on the host computing
system. Worse still, the web server could run malevolent code from within the mail user
agent which could infect the host system, steal data, etc. As such, prior art email systems
do not allow unrestricted extensible interactivity over the Internet. Instead, such systems
set up virtual sub-networks, where those entities wishing to provide interactive content via
the extensible email system are prescreened and authenticated. Only then are they
admitted to the virtual sub-network and allowed to provide interactive content via the mail
user agent.
SUMMARY
[0004] The present technology, roughly described, relates to a system and method for
providing an extensible email having rich, interactive browser capabilities. The system
includes a service provider for receiving extensible emails from a third party platform and
presenting the emails to a user's computing device.
[0005] The system further includes a mail user agent, either resident on a server of the
service provider or run locally on the user's computing device. The mail user agent
receives the extensible email which includes a URL (uniform resource locator) within
metadata of the extensible email. The mail user agent then contacts and retrieves code
from a computing environment designated by the URL.
[0006] The system further provides a virtual machine, referred to herein as a sandbox,
in, which the code retrieved by the mail user agent is examined and run in a secure
environment. The sandbox applies one or more policies which define boundaries on how
retrieved code may operate on the system. By applying the one or more policies, the
sandbox determines if portions of the retrieved code operate outside of these boundaries.
In embodiments, the sandbox attempts to reimplement any portion of retrieved code that
operates outside of a policy-defined boundary into code that operates within the policy
defined boundary.
[0007] This system of isolating and evaluating third party code within a secure
sandbox allows the present system to receive extensible emails from third party platforms
from anywhere over the Internet. In embodiments, all authentication and validation of
emails, and the examination of third party code in the sandbox, occurs at the time an email
is received or opened. With such a system, no pre-authorized third parties or sub
networks of approved third parties are required. As such, extensible emails may be
received from anywhere on the Internet, dynamically authenticated and resolved, and then
rendered with an interactive view in accordance with the procedures described above.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Fig. 1A is a block diagram of a system for generating an extensible email, and
an extensible email generated thereby.
[0009] Fig. IB is a follow-on interactive view to the interactive view shown in Fig.
1A.
[0010] Fig. 2 depicts a block diagram of computer hardware suitable for implementing
the present technology.
[0011] Fig. 3 is a flowchart illustrating the steps for a third party platform to generate
and send extensible emails according to the present technology.
[0012] Fig. 4 is an illustration of email metadata generated by a third party platform to
send an extensible email according to the present technology.
[0013] Fig. 5 is a flowchart illustrating the steps for a service provider to receive and
store an extensible email.
[0014] Fig. 6 is a flowchart illustrating the steps of a service provider for presenting an
extensible email to a service provider user.
[0015] Fig. 7 is a more detailed flowchart of the steps for authenticating and validating
a received extensible email.
[0016] Fig. 8 is a more detailed flowchart of the steps for fetching code from a third
party platform to generate an extensible email.
[0017] Fig. 9 is a more detailed flowchart of the steps for examining and running
received code within a secure sandbox on the service provider.
[0018] Fig. 10 is an illustration of email metadata generated by a third party platform
to send an extensible email including two interactive views according to the present
technology.
[0019] Fig. 11 is an illustration of an extensible email including two interactive views
generated from the metadata shown in Fig. 10.
DETAILED DESCRIPTION
[0020] The present technology will now be described with reference to Figs. 1A
through 11, which in general relate to a system and method for providing an extensible
email having rich, interactive browser capabilities. Referring initially to Fig. 1, there is
shown an embodiment for implementing the present technology including a user
computing device 50, a service provider 60 and a third party platform 70. The service
provider 60 includes a mail server 62 for sending email to and receiving email from the
subscribing user's device 50. While one server 62 is shown, there may be more than one
server in further embodiments.
[0021] In an example of the present system, service provider 60 may be an enterprise
service provider, and mail server 62 may host a webmail user agent 64 (also referred to
herein as mail agent 64), such as for example Hotmail® web-based e-mail service. In
further embodiments, the mail user agent 64 may for example be Outlook® messaging and
collaboration client located on the user's computing device 50. In this case, mail server 62
may be a mail transfer agent hosted by the user's internet service provider 60. In further
embodiments, the email communication client may be resident on any of a variety of
computing devices, including for example mobile devices. It is understood that other mail
user agents and communications clients may be used in the present system in further
embodiments.
[0022] In general, the third party platform 70 may be any domain on the Internet that
wishes to send extensible emails to users. The third party platform may include a mail
server 72 and a web server 74. While one mail server 72 and one web server 74 are
shown, third party platform 70 may include more than one mail server 72 and/or more
than one web server 74 in further embodiments. Additionally, the email server and web
server may be combined within a single server in further embodiments. Moreover, while a
single third party platform is shown, there may be many in embodiments.
[0023] The platform 70 may send an extensible email via the mail server 72 to one or
more users. The email is routed through the mail server 62 of the enterprise service
provider 60. The extensible email may include embedded metadata which allows the mail
user agent 64 of the service provider to communicate with the third party web server 74 to
receive a wide variety of interactive, dynamic and real time information, all within a
graphical user interface (GUI) 52 of the user's mail agent 64. It is understood that the
above described communication may be made to the third party platform with servers
other than web server 74 in embodiments.
[0024] Extensible emails may be generated by the third party platform 70 relating to
any of a wide variety of topics and services. For example, GUI 52 in Fig. 1 shows an
extensible email displayed within the email body upon the user opening the email from the
user's inbox. In this example, the extensible email includes an interactive view 54 relating
to an invitation to join an online social network. In general, an "interactive view" as used
herein is any view presented within an extensible email which is generated from code
fetched from the third party sender system upon the user opening the extensible email, as
explained in greater detail below. The interactive view 54 may for example include:
• dynamic animations and rich multimedia content such as dynamic graphics
and videos;
• dynamic webpage layouts;
• real time data, for example user account information stored with the third
party platform; and
• dynamic requests for information and feedback.
Other types of dynamic and interactive information may be provided within an interactive
view of an extensible email in further embodiments.
[0025] Once a user interacts with an interactive view, the third party platform 70 may
provide content that can also be an interactive view. For example, if the user interacts
with the interactive view 54 in Fig. 1A to accept the networking invitation provided by the
interactive view, the mail user agent 64 may contact the third party platform, which may
respond with a further interactive view 54 shown in Fig. IB. Through interaction with the
interactive view, a user may be presented with multiple successive screens by the mail
user agent 64 each having an interactive view. The further interactive view(s) may come
from the same or different third party platform.
[0026] The extensible email may further include a static view 56 which may be
defined by the sender in the sent email and need not be fetched by the receiving mail user
agent 64. In general, a "static view" as used herein may be defined in the third party's
sent email as explained below, and may include static text, styles and/or graphics. It is
understood that an email may include an interactive view 54 but no static view 56, or an
email may include a static view 56 but not interactive view 54.
[0027] Extensible emails may be sent from any domain on the Internet, and the GUI
52 shown in Fig. 1 is one of many possible extensible emails. As a further example,
where the third party server 74 stores photo albums or videos, the embedded metadata in
the sent email may allow the user to view the photo albums or videos in the user's email
inbox, and then add comments which are then stored back on third party server 74. Where
the third party platform 70 is a social network, the embedded metadata in the sent email
may allow the user to view and comment on friends' profiles, and possibly accept, decline
and send invitations. Where the third party platform is a seller, reseller or intermediary for
goods and services, the embedded metadata may allow the user to interact with the web
server 74 to make purchases, review purchases, account and shipping information, bid on
auction items, read product reviews and ratings, get real-time pricing and availability, add
products to a wish list, etc. Where the third party platform 70 is an airline or travel agent,
the embedded metadata may allow the user to interact with the web server 74 to review or
purchase travel reservations, or receive flight arrival/departure information.
[0028] The types of extensible emails which may be sent are as varied as the types of
goods, services and information that are provided over the World Wide Web. The user
interactivity with an extensible email may be performed by the user's mail agent 64 and
presented within the body of the extensible email in the Inbox of the user's mail agent 64
as shown in GUI 52. The operation of the present technology to enable this interactivity
within a mail user agent 64 is explained below. As used in this detailed description of the
present technology, the terms "mail user agent" and "mail agent" are used to describe a
software routine, resident in an enterprise service provider 60 or within the user's
computing device 50, which perform the email functions of a conventional mail user
agent, plus additional browser functions enabling interaction with the third party web
server 74 or other third party server.
[0029] Each of computing device 50, mail servers 62 and 72 and web server 74 may
be comprised of a general computing system environment 100 which is now explained
with reference to Fig. 2. The computing system environment 100 is only one example of a
suitable computing environment and is not intended to suggest any limitation as to the
scope of use or functionality of the system. Neither should the computing environment
100 be interpreted as having any dependency or requirement relating to any one or
combination of components illustrated in the exemplary operating environment 100.
[0030] In addition to or instead of one or more of the devices described above, the
functions of one or more of the above-described devices may be performed by numerous
other general purpose or special purpose computing system environments or
configurations. Examples of other well known computing systems, environments, and/or
configurations that may be suitable for use with the system include, but are not limited to,
hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set
top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe
computers, distributed computing environments that include any of the above systems or
devices, and the like.
[0031] The system may be described in the general context of computer-executable
instructions, such as program modules, being executed by a computer. Generally, program
modules include routines, programs, objects, components, data structures, etc., that
perform particular tasks or implement particular abstract data types. The system may also
be practiced in distributed computing environments where tasks are performed by remote
processing devices that are linked through a communications network. In a distributed
computing environment, program modules may be located in both local and remote
computer storage media including memory storage devices.
[0032] Fig. 2 includes a general purpose computing device in the form of a computer
110. Components of computer 110 may include, but are not limited to, a processing unit
120, a system memory 130, and a system bus 1 1 that couples various system components
including the system memory to the processing unit 120. The system bus 121 may be any
of several types of bus structures including a memory bus or memory controller, a
peripheral bus, and a local bus using any of a variety of bus architectures. By way of
example, and not limitation, such architectures include Industry Standard Architecture
(ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video
Electronics Standards Association (VESA) local bus, and Peripheral Component
Interconnect (PCI) bus also known as Mezzanine bus.
[0033] Computer 110 typically includes a variety of computer readable media.
Computer readable media can be any available media that can be accessed by computer
110 and includes both volatile and nonvolatile media, removable and non-removable
media. By way of example, and not limitation, computer readable media may comprise
computer storage media and communication media. Computer storage media includes
both volatile and nonvolatile, removable and non-removable media implemented in any
method or technology for storage of information such as computer readable instructions,
data structures, program modules or other data. Computer storage media includes, but is
not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CDROM,
digital versatile disks (DVD) or other optical disk storage, magnetic cassettes,
magnetic tape, magnetic disk storage or other magnetic storage devices, or any other
medium which can be used to store the desired information and which can be accessed by
computer 110. Communication media typically embodies computer readable instructions,
data structures, program modules or other data in a modulated data signal such as a carrier
wave or other transport mechanism and includes any information delivery media. The
term "modulated data signal" means a signal that has one or more of its characteristics set
or changed in such a manner as to encode information in the signal. By way of example,
and not limitation, communication media includes wired media such as a wired network or
direct-wired connection, and wireless media such as acoustic, RF, infrared and other
wireless media. Combinations of any of the above are also included within the scope of
computer readable media.
[0034] The system memory 130 includes computer storage media in the form of
volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random
access memory (RAM) 132. A basic input/output system (BIOS) 133, containing the
basic routines that help to transfer information between elements within computer 110,
such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data
and/or program modules that are immediately accessible to and/or presently being
operated on by processing unit 120. By way of example, and not limitation, Fig. 2
illustrates operating system 134, application programs 135, other program modules 136,
and program data 137.
[0035] The computer 110 may also include other removable/non-removable,
volatile/nonvolatile computer storage media. By way of example only, Fig. 2 illustrates a
hard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic
media, a magnetic disk drive 151 that reads from or writes to a removable, nonvolatile
magnetic disk 152, and an optical disk drive 155 that reads from or writes to a removable,
nonvolatile optical disk 156 such as a CD-ROM or other optical media. Other
removable/non-removable, volatile/ nonvolatile computer storage media that can be used
in the exemplary operating environment include, but are not limited to, magnetic tape
cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM,
solid state ROM, and the like. The hard disk drive 141 is typically connected to the
system bus 121 through a non-removable memory interface such as interface 140, and
magnetic disk drive 151 and optical disk drive 155 are typically connected to the system
bus 121 by a removable memory interface, such as interface 150.
[0036] The drives and their associated computer storage media discussed above and
illustrated in Fig. 2, provide storage of computer readable instructions, data structures,
program modules and other data for the computer 110. In Fig. 2, for example, hard disk
drive 141 is illustrated as storing operating system 144, application programs 145, other
program modules 146, and program data 147. These components can either be the same
as or different from operating system 134, application programs 135, other program
modules 136, and program data 137. Operating system 144, application programs 145,
other program modules 146, and program data 147 are given different numbers here to
illustrate that, at a minimum, they are different copies. A user may enter commands and
information into the computer 110 through input devices such as a keyboard 162 and
pointing device 161, commonly referred to as a mouse, trackball or touch pad. Other input
devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner,
or the like. These and other input devices are often connected to the processing unit 120
through a user input interface 160 that is coupled to the system bus 121, but may be
connected by other interface and bus structures, such as a parallel port, game port or a
universal serial bus (USB). A monitor 191 or other type of display device is also
connected to the system bus 121 via an interface, such as a video interface 190. In
addition to the monitor, computer 110 may also include other peripheral output devices
such as speakers 197 and printer 196, which may be connected through an output
peripheral interface 195.
[0037] The computer 110 may operate in a networked environment using logical
connections to one or more remote computers, such as a remote computer 180. The remote
computer 180 may be a personal computer, a server, a router, a network PC, a peer device
or other common network node, and typically includes many or all of the elements
described above relative to the computer 110, although only a memory storage device 181
has been illustrated in Fig. 2. The logical connections depicted in Fig. 2 include a local
area network (LAN) 171 and a wide area network (WAN) 173, but may also include other
networks. Such networking environments are commonplace in offices, enterprise-wide
computer networks, intranets and the Internet.
[0038] When used in a LAN networking environment, the computer 110 is connected
to the LAN 171 through a network interface or adapter 170. When used in a WAN
networking environment, the computer 110 typically includes a modem 172 or other
means for establishing communications over the WAN 173, such as the Internet. The
modem 172, which may be internal or external, may be connected to the system bus 121
via the user input interface 160, or other appropriate mechanism. In a networked
environment, program modules depicted relative to the computer 110, or portions thereof,
may be stored in the remote memory storage device. By way of example, and not
limitation, Fig. 2 illustrates remote application programs 185 as residing on memory
device 181. It will be appreciated that the network connections shown are exemplary and
other means of establishing a communications link between the computers may be used.
[0039] The operation of the present system is now further described with reference to
Figs. 3-9. Referring first to the flowchart of Fig. 3, an extensible email is initially
generated and sent by the third party platform 70. In accordance with embodiments of the
present system, the sender includes metadata in the HTML portion of the extensible email,
which is used by the service provider to render the interactive and static views. The
metadata may be located in other portions of the sent email in further embodiments,
including for example in the header of the email. In step 300, the sender specifies the
recipient(s) of the email. The sender may also specify a subject of the email in step 300.
Fig. 4 is a sample email including the email sender ("CustomerService@ship.com"), a
recipient of the email ("Christina@ISP.com"), a subject and time of the email. As shown
in Fig. 4, step 300 further includes the sender adding metadata 310 used to generate the
interactive view of the extensible email, and the metadata 312 used to generate the static
view of the extensible email.
[0040] The metadata used to generate a given interactive view in an email may start
and end with an html
| # | Name | Date |
|---|---|---|
| 1 | 5940-CHENP-2012 PCT PUBLICATION 05-07-2012.pdf | 2012-07-05 |
| 2 | 5940-CHENP-2012 FORM-5 05-07-2012.pdf | 2012-07-05 |
| 3 | 5940-CHENP-2012 FORM-3 05-07-2012.pdf | 2012-07-05 |
| 4 | 5940-CHENP-2012 FORM-1 05-07-2012.pdf | 2012-07-05 |
| 5 | 5940-CHENP-2012 CLAIMS SIGNATURE LAST PAGE 05-07-2012.pdf | 2012-07-05 |
| 6 | 5940-CHENP-2012 POWER OF ATTORNEY 05-07-2012.pdf | 2012-07-05 |
| 7 | 5940-CHENP-2012 FORM-2 FIRST PAGE 05-07-2012.pdf | 2012-07-05 |
| 8 | 5940-CHENP-2012 DRAWINGS 05-07-2012.pdf | 2012-07-05 |
| 9 | 5940-CHENP-2012 DESCRIPTION(COMPLETE) 05-07-2012.pdf | 2012-07-05 |
| 10 | 5940-CHENP-2012 CLAIMS 05-07-2012.pdf | 2012-07-05 |
| 11 | 5940-CHENP-2012 CORRESPONDENCE OTHERS 05-07-2012.pdf | 2012-07-05 |
| 12 | 5940-CHENP-2012.pdf | 2012-07-12 |
| 13 | abstract5940-CHENP-2012.jpg | 2012-07-31 |
| 14 | 5940-CHENP-2012 FORM-3 02-01-2013.pdf | 2013-01-02 |
| 15 | 5940-CHENP-2012 CORRESPONDENCE OTHERS 02-01-2013.pdf | 2013-01-02 |
| 16 | Form-18(Online).pdf | 2014-01-03 |
| 17 | 5940-CHENP-2012 FORM-6 01-03-2015.pdf | 2015-03-01 |
| 18 | MTL-GPOA - KONPAL.pdf ONLINE | 2015-03-09 |
| 19 | MS to MTL Assignment.pdf ONLINE | 2015-03-09 |
| 20 | FORM-6-1701-1800(KONPAL).56.pdf ONLINE | 2015-03-09 |
| 21 | FORM-6-1701-1800(KONPAL).56.pdf | 2015-03-13 |
| 22 | 5940-CHENP-2012-FER.pdf | 2019-10-07 |
| 1 | SearchStrategyMatrix_04-10-2019.pdf |