E-mail services allow users to send and receive e-mail messages over a remote network, such as the Internet. E-mail services may be provided by dedicated software programs installed on a user's computer, or may be online-based e-mail services accessible using a web browser. E-mail services allow senders to attach files to the e-mail message, in which a copy of the file is sent to the recipient along with the content of the e-mail message. Files that are stored on the computer that the sender is using, or stored within remotely maintained file folders that are accessible to the sender (e.g. via a local-area network or a wide-area network), may be attached in this manner. These attachments may be referred to as “local” file attachments. E-mail services may present the attachments to recipients in a number of ways. For example, if the file is an image the e-mail service may generate a preview thumbnail of the image and display it to the recipient so the recipient can see what the image depicts. For non-image attachments, the e-mail service may display icons corresponding to the attachment's file type, for example specific icons representing .pdf or .doc files. E-mail services usually display file attachments in a specific manner, for example in a special attachment section that is located below the content of the e-mail message. Recipients may identify all the attachments sent with the e-mail message by looking at the attachment section, and the attachment section may display the preview thumbnails or icons along with the name of the attachment and options for handling the attachments.
E-mail services also allow senders to insert uniform resource locator (URL) links into the e-mail message. The URL links may be links to specific web pages, but may also be links to files stored on a cloud computing service. Cloud computing services allow users to create, edit, and store files on a remote server and allow users to access the file from any computing device capable of connecting to the remote server. Each file is associated with a specific URL link generated by the cloud computing service. Thus inserting in an e-mail message a link to a file stored in a cloud computing service is similar to attaching a local file attachment. The recipient selects the URL link to view or download the file, for example using a web browser. The URL link is incorporated into the body of the e-mail message and does not appear in the attachment section. The e-mail service may display the bare URL link, or may use an icon or graphic to indicate it leads to a file stored on the cloud computing service. Senders may attach files to e-mail messages using both the local file attachment method and by including URL links to files provided by third party services, such as a cloud computing service. However, while both methods effectively attach files to the e-mail message, the e-mail service may treat and display these two methods differently. For example, links appear in the body of the e-mail message and may have certain options associated with them (e.g. open in new window), while local file attachments appear in the attachment section and have other options associated with them (e.g. download file). This may confuse recipients because the attachments are located in different parts of the e-mail message and are not displayed uniformly, and also because different options are available for different files depending on the method of attachment.
The systems and methods described herein provide a way for an e-mail service to provide a uniform display for attachments to an e-mail message, whether they are local file attachments or links to files provided by a third party service. An e-mail server receives an e-mail message sent by a sender, where the e-mail message contains local file attachments and links to files provided by a third party service. The third party service may be a cloud computing service and the link is to a file stored on the cloud computing service. Alternatively, the linked file may be a web page, image, video, map, interactive script, or any other electronic file that may be referenced by a URL link. The e-mail server communicates a thumbnail generation service to generate preview thumbnails for each attachment. The thumbnail generation service may be the cloud computing service storing the linked files. The cloud computing service sends the e-mail server preview thumbnails of the files that were linked in the e-mail message. The e-mail server also sends a copy of the local file attachments to the thumbnail generation service, which generates preview thumbnails of the file attachments and sends them back to the e-mail server. The e-mail server sends the e-mail message and the preview thumbnails for all the attachments to a recipient client computer for display. The preview thumbnails for all the attachments, whether by file or by link, have a uniform appearance, are displayed in the same manner and location in the e-mail message, and the same user options are made available for each attachment. Thus attachments made by both methods have an indistinguishable appearance to the recipient of the e-mail message.
One aspect described herein discloses a method for providing a display of attachments for an e-mail message, the method including receiving an e-mail message with a plurality of attachments at a server, where a first attachment in the plurality of attachments is a file and a second attachment in the plurality of attachments is a link to a file provided by a third party service. The method further includes sending a request to a thumbnail generation service to generate a preview thumbnail for each of the plurality of attachments, receiving from the thumbnail generation service the preview thumbnails for each of the plurality of attachments, where the preview thumbnail for each of the plurality of attachments have a uniform appearance, and sending the e-mail message and the preview thumbnails for the plurality of attachments to a client computer for display.
Another aspect described herein discloses a system for providing a display of attachments for an e-mail message, where the system includes a computing device. The computing device is configured to communicate with a plurality of client computers and a thumbnail generation service over a communication network, and receive an e-mail message with a plurality of attachments from a first client computer in the plurality of client computers, where a first attachment in the plurality of attachments is a file and a second attachment in the plurality of attachments is a link to a file provided by a third party service. The server is further configured to send a request to the thumbnail generation service to generate a preview thumbnail for each of the plurality of attachments, receive from the thumbnail generation service the preview thumbnails for each of the plurality of attachments, where the preview thumbnail for each of the plurality of attachments have a uniform appearance, and render the e-mail message and the preview thumbnails for the plurality of attachments for display.
Another aspect described herein discloses a graphical user interface for displaying attachments for an e-mail message. The graphical user display includes an e-mail message display for displaying the content of an e-mail message and an attachment preview area within the e-mail message display for displaying a plurality of preview thumbnails for a plurality of attachments in the e-mail message. A first attachment in the plurality of attachments is a file, a second attachment in the plurality of attachments is a link to a file provided by a third party service, and the plurality of preview thumbnails are generated by a thumbnail generation service and are displayed uniformly in the attachment preview area.
Another aspect described herein discloses a method for displaying attachments for an e-mail message. The method includes receiving an e-mail message with a plurality of attachments at a client computer, where a first attachment in the plurality of attachments is a file and a second attachment in the plurality of attachments is a link to a file provided by a third party service. The method further includes receiving a preview thumbnail for each of the plurality of attachments, where the preview thumbnails are generated by a thumbnail generation service and where the preview thumbnail for each of the plurality of attachments have a uniform appearance, and displaying the e-mail message and the preview thumbnails of the plurality of attachments to a recipient on the client computer.
The methods and systems may be better understood from the following illustrative description with reference to the following drawings in which:
To provide an overall understanding of the systems and methods described herein, certain illustrative embodiments will now be described, including systems and methods for providing a display of attachments for an e-mail message. However, it will be understood that the systems and methods described herein may be adapted and modified as is appropriate for the application being addressed and that the systems and methods described herein may be employed in other suitable applications, and that such other additions and modifications will not depart from the scope thereof. In particular, a server, service, or system as used in this description may be a single computing device or multiple computing devices working collectively and in which the storage of data and the execution of functions are spread out amongst the various computing devices.
Aspects of the systems and methods described herein relate to a uniform display of attachments in an e-mail message, where the attachments include local file attachments and links to files provided by a third party service. An e-mail server receives an e-mail message sent by a sender, where the e-mail message contains local attachments and links to files provided by a third party service. The third party service may be a cloud computing service and the link is to a file stored on the cloud computing service. Alternatively, the linked file may be a web page, image, video, map, interactive script, or any other electronic file that may be referenced by a URL link. The e-mail server communicates with a thumbnail generation service to generate preview thumbnails for each attachment. The thumbnail generation service may be the cloud computing service storing the linked files. In this case, the e-mail server sends the cloud computing service a copy of the local file attachments and information identifying the files included in the e-mail message by link. The cloud computing service is capable of generating preview thumbnails for most file types and sends the e-mail server preview thumbnails for all of the attachments. The e-mail server sends the e-mail message and the preview thumbnails for all of the attachments to a recipient client computer for display. The preview thumbnails for all of the attachments have a uniform appearance, are displayed in the same manner and location in the e-mail message display, and the same user options are made available for each attachment.
First, a network system in which a number of client computers may connect to an e-mail server and a third party service, such as a cloud computing service, is described.
The components of a client computer and an e-mail server in communication with each other are now described in more detail. System 200 in
Client computer 216 includes a CPU 224, ROM 220, RAM 222, input/output interface 218, and bus 226. Client computer 216 may have additional components that are not illustrated in
E-mail message store 212 for e-mail messages stored on e-mail server 202, a web browser executing on client computer 216, and other data structures and software programs in system 200 may be implemented using non-transitory computer-readable media. Examples of suitable non-transitory computer-readable media include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and read-only, once-writable, or rewriteable CD-ROM and DVD-ROM disks.
A typical previously known user interface for displaying an e-mail message is now described.
As seen from
The systems and methods described herein offer an improvement to the typical e-mail message display shown in
User interface 400 provides an options menu 416 for each attachment in attachment card 408. Options menu 416 may appear when the recipient selects or points to the preview thumbnail, or when the recipient clicks on a drop-down arrow that appears when the recipient selects or points to the preview thumbnail, or any other method for providing menu options. Options menu 416 includes a number of options for handling the attachment, such as downloading a copy of the attachment onto the client computer, opening the attachment, printing the attachment, playing a video or audio attachment, or sharing or forwarding the attachment to someone else. Options menu 416 may also include an option to preview the attachment, which may open a new window or a Javascript overlay on top of user interface 400 for viewing a preview of the attachments. Options menu 416 may also include an option to save the attachment onto a cloud computing service, which when selected would save a copy of the attachment in the recipient's account on the cloud computing service. The recipient may be prompted to start an account if he or she does not already have an account on the cloud computing service. Many other saving, viewing, and sharing options also may be available to the recipient through options menu 416. The layout of user interface 400 is not restricted to that illustrated in
Attachment card 408 may include preview thumbnails for all kinds of links to third party services normally embedded in e-mail message body 406, including files stored on a cloud computing service, web pages, images, videos, maps, interactive scripts, or other electronic files accessible through a URL link. For example, if a sender includes a link to an online video in the e-mail message, attachment card 408 may include a preview thumbnail of the video. If the sender includes a link to an online map showing directions or a specific location, attachment card 408 may include a preview thumbnail of the map. If the sender includes a link to an online photo album, attachment card 408 may include a preview thumbnail of the photo album. Options menu 416 would include additional options to handle the above-mentioned attachments, such as playing the video, bringing up the map, initiating GPS functions on the client computer using the map, or viewing the photo album. Other links that a sender may embed in the e-mail message may be depicted in attachment card 408. E-mail message body 406 may include inline images, which remain in the body of the e-mail message but the preview thumbnail for inline images may have the same dimensions as the preview thumbnails for the attachments and the same menu options may be available for in-line images. The uniform display of layouts may also be provided to a person sending an e-mail message. A user interface for composing an e-mail message may include an attachment card similar to attachment card 408 shown in
The process for generating preview thumbnails for attachments in e-mail messages is now described. System 500 in
E-mail server 504 communicates with a thumbnail generation service to help generate thumbnails for all the local file attachments and linked files in the e-mail message. The thumbnail generation service may be the cloud computing service 506 itself. E-mail server 504 may first check whether it has already obtained the preview thumbnails for one or more attachments in the e-mail message. For example, the recipient may have received the same attachments from multiple senders, or an e-mail message chain incorporating past messages may also incorporate attachments included in past messages. E-mail server 504 may have cached the thumbnails for those attachments and does not need to have cloud computing service 506 generate them again. E-mail server 504 may check the content signatures for each attachment, for example the hash value of the file content, to determine if a preview thumbnail has previously been generated for that attachment.
For new attachments, e-mail server 504 requests from a thumbnail generation service preview thumbnails for all the linked files and local file attachments in the e-mail message. The thumbnail generation service may be cloud computing service 506, which retrieves preview thumbnails for the linked files and generates preview thumbnails for the local file attachments. Alternatively, e-mail server 504 may request preview thumbnails of linked files from cloud computing service 506 and preview thumbnails of local file attachments from a separate thumbnail generation service. Alternatively, a thumbnail generation service separate from cloud computing service 506 may generate preview thumbnails for both linked files and local file attachments.
For example, if cloud computing service 506 is the sole thumbnail generation service, e-mail server 504 sends the request for preview thumbnails to cloud computing service 506. Cloud computing service 506 receives the request and may verify that the recipient is allowed to access the files linked in the e-mail message, for example by checking the access control list for each file. If the recipient is not authorized to access the file, cloud computing service 506 may return no thumbnail to e-mail server 504. Cloud computing service 506 usually stores preview thumbnails for all files stored on the service, for example in a thumbnail database maintained by the cloud computing service. The thumbnails for the linked files are identified and sent to e-mail server 504. E-mail server 504 also sends a copy of each local file attachment to cloud computing service 506. Cloud computing service 506 is configured to generate preview thumbnails for most file types and so generates a preview thumbnail for each file received from e-mail server 504. The preview thumbnails are sent back to e-mail server 504. If cloud computing service 506 cannot generate a preview thumbnail for certain files, it may return a generic icon to e-mail server 504. The preview thumbnails may be a standard image format, such as .gif or .jpg, and may all have the same dimensions. For certain file types, e-mail server 504 may use another thumbnail generation service other than cloud computing service 506 to generate the preview thumbnails. For example, for certain image formats e-mail server 504 may send a copy of the images to a dedicated image processing service to generate the preview thumbnail.
After the e-mail server 504 obtains preview thumbnails for all of the attachments in the e-mail message, whether a file attachment or a linked file, e-mail server 504 provides the e-mail message to the recipient on client computer 508 when the recipient checks his or her e-mail messages. E-mail server 504 provides a user interface for viewing e-mail messages, for example on a web browser executing on client computer 508. The user interface provided by e-mail server 504 displays all the attachments in the e-mail message, whether a file attachment or a linked file, uniformly. For example, the user interface may include an attachment card section that displays the preview thumbnails for all the attachments, such as user interface 400 in
An example pseudo-code of the process of providing a uniform display of all attachments in an e-mail message is shown below. This pseudo-code or variations of this pseudo-code may be performed by an e-mail server such as e-mail server 504 shown in
A method for providing a display of attachments for an e-mail message is now described. Method 600 illustrated in
Method 600 begins when a server receives an e-mail message with a number of attachments, illustrated at 602. The e-mail message is intended for a recipient whose e-mail account the server hosts. The attachments include both local file attachments and URL links to files provided by a third party service. The link may be a file stored on a cloud computing service, or may be any electronic file accessible through a URL link, such as web pages, images, videos, interactive scripts, and maps. The server parses the metadata of the local file attachments and the e-mail text to identify the linked files. The server analyzes the format of the links to determine which third party service the files are stored on. The server then sends a request to a thumbnail generation service to generate preview thumbnails for each attachment, illustrated at 604. The thumbnail generation service may be a cloud computing service storing the linked files. If the server sends the request to the cloud computing service, the request includes information identifying the linked files, for example document ID numbers, and copies of the local file attachments in the e-mail message. The server may also send the cloud computing service information identifying the recipient of the e-mail message, for example the recipient's e-mail address. The server may also send the cloud computing service other links included in the e-mail message, such as map or video links. The server may first check whether its cache stores preview thumbnails for any of the attachments, for example by checking the content signature of the attachments. If a preview thumbnail has previously been generated for the attachment, the server retrieves the preview thumbnail from its cache.
The cloud computing service is configured to generate preview thumbnails for most file types. The cloud computing service may have a thumbnail database for storing preview thumbnails for files stored on the cloud computing service. When the cloud computing service receives the preview thumbnail request from the server, it generates and returns preview thumbnails for each attachment, whether a file attachment or a linked file. For linked files, the cloud computing service identifies the files linked in the e-mail message. The cloud computing service obtains the preview thumbnails for those files from its thumbnail database and sends the thumbnails to the server. The cloud computing service may check whether the recipient is authorized to access the files, for example by checking the access control list for each file. If the recipient is not authorized to access a file, the cloud computing service may return no thumbnail for that file or return a generic thumbnail indicating that access is denied. The e-mail server would indicate to the recipient that access to the file is denied, but may still provide certain information such as the title and the file type. For file attachments sent by the server, the cloud computing service generates preview thumbnails for each file and returns them to the server. If the cloud computing service cannot generate thumbnails for a specific file type (e.g. uncommon proprietary files), the cloud computing service may provide a generic icon thumbnail to the server. The server may obtain preview thumbnails for certain file types from other services in lieu of the cloud computing service. For other types of links, such as links to online maps or videos, the cloud computing service may capture a preview thumbnail from the linked URL and send the thumbnails to the server. Preview thumbnails may be formatted in .gif, .jpg, or other known image formats. The preview thumbnails have a uniform appearance, such as having uniform dimensions, spacing, fonts, colors, borders, descriptions, and the like.
The server receives the preview thumbnails for each attachment, shown at 606. When the recipient next views the e-mail message, the server sends the e-mail message and the preview attachments to the recipient's client computer for display, shown at 608. The server may provide the client computer with a user interface for displaying the e-mail message, such as user interface 400 in
A method for displaying attachments for an e-mail message is now described. Method 700 illustrated in
Method 700 begins when a client computer loads an e-mail message with a plurality of attachments from an e-mail server, illustrated at 702. A recipient of the e-mail message uses the client computer to view e-mail messages received at the recipient's e-mail account handled by the e-mail server. The recipient may use a web browser to view the e-mail message, where the e-mail server provides the web browser with a user interface to display the e-mail such as user interface 400 in
The cloud computing service is configured to generate preview thumbnails for most file types. The cloud computing service may have a thumbnail database for storing preview thumbnails for files stored on the cloud computing service. The e-mail server or client computer sends a preview thumbnail request to the cloud computing service for each attachment, whether a file attachment or a linked file. For linked files, the cloud computing service identifies the files linked in the e-mail message. The cloud computing service obtains the preview thumbnails for those files from its thumbnail database and sends the thumbnails to the e-mail server or client computer. The cloud computing service may check whether the recipient is authorized to access the files, for example by checking the access control list for each file. If the recipient is not authorized to access a file, the cloud computing service may return no thumbnail for that file or return a generic thumbnail indicating that access is denied. The e-mail server or client computer would indicate to the recipient that access to the file is denied, but may still provide certain information such as the title and the file type. The e-mail server or client computer also sends a copy of each file attachment to the cloud computing service, which generates preview thumbnails for each file and returns them to the e-mail server or client computer. If the cloud computing service cannot generate thumbnails for a specific file type (e.g. uncommon proprietary files), the cloud computing service may provide a generic icon thumbnail to the e-mail server or client computer. For other types of links, such as links to online maps or videos, the cloud computing service may capture a preview thumbnail from the linked URL and send the thumbnails to the server. The e-mail server or client computer may obtain preview thumbnails for certain file types from other services in lieu of the cloud computing service. Preview thumbnails may be formatted in .gif, .jpg, or other known image formats. The preview thumbnails have a uniform appearance, such as having uniform dimensions, spacing, fonts, colors, borders, descriptions, and the like.
The e-mail message and the preview thumbnails for each attachment are displayed on the client computer, illustrated at 706. The user interface for displaying the e-mail message may be displayed on a web browser on the client computer. All the attachments to the e-mail message are shown in the same area of the user interface, such as an attachment section or card at the bottom of the e-mail message display. The preview thumbnails for all attachments are displayed uniformly such that there no visual differences between attachments that are local file attachments and linked file attachments. The user interface may provide a number of options for each attachment, such as saving the file to a cloud computing service, downloading the file, and previewing the file. The preview thumbnails may be cached for quick reference in the future. Thus method 700 illustrates a method for providing a uniform display of attachments in an e-mail message.
It will be apparent that aspects of the systems and methods described herein may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the drawings. The actual software code or specialized control hardware used to implement aspects consistent with the principles of the systems and method described herein is not limiting. Thus, the operation and behavior of the aspects of the systems and methods were described without reference to the specific software code—it being understood that one of ordinary skill in the art would be able to design software and control hardware to implement the aspects based on the description herein.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous.