Attachment reply handling in networked messaging systems

Systems, methods, apparatuses, and software for network messaging systems in computing environments are provided herein. In one example, a networked messaging system is provided that presents a message to a user, the message being associated with a conversation thread comprising one or more members and having a file attachment. The networked messaging system receives a reply instruction issued by the user to reply to the conversation thread with a modified version of the file attachment, and responsively establishes a reply message associated with the conversation thread that includes the modified version of the file attachment. The networked messaging system transfers the reply message with the modified version of the file attachment for delivery to the one or more members.

TECHNICAL BACKGROUND

Networked messaging platforms have become popular for transferring communications between users, such as electronic mail (email), instant messaging, text messaging, or other messaging technologies. These messaging platforms can be provided for end users to draft or compose various messages and create conversation-threaded communications for interaction with one or more users. Messaging systems have become increasing employed on smartphones, computers, laptops, tablets, gaming systems, and the like. User interfaces are typically employed by these messaging systems for users to compose or respond to messages. The user interfaces can include stand-alone email applications which can include local, web, or cloud-based user interfaces. Smartphone devices and tablet computing devices can include one or more user apps that allow a user to interact with messaging systems and compose messages. In many examples, files or other data can be attached to these messages, such as when sending a document or picture to one or more users. However, file attachments can be cumbersome to manage when users interact with email or messaging systems, especially when a user desires to edit or alter a file attachment.

Overview

Systems, methods, apparatuses, and software for network messaging systems in computing environments are provided herein. In one example, a networked messaging system is provided that presents a message to a user, the message being associated with a conversation thread comprising one or more members and having a file attachment. The networked messaging system receives a reply instruction issued by the user to reply to the conversation thread with a modified version of the file attachment, and responsively establishes a reply message associated with the conversation thread that includes the modified version of the file attachment. The networked messaging system transfers the reply message with the modified version of the file attachment for delivery to the one or more members.

In another example, an electronic mail service is provided. The electronic mail service presents an electronic mail message to a user, the electronic mail message having a file attachment and being associated with a conversation thread comprising one or more members. The electronic mail service receives a reply instruction issued by the user to reply to the conversation thread with a modified version of the file attachment, and responsively establishes a reply message associated with the conversation thread that includes the modified version of the file attachment. The electronic mail service transfers the reply message with the modified version of the file attachment for delivery to the one or more members.

DETAILED DESCRIPTION

Networked messaging platforms, such as electronic mail (email) systems, instant messaging platforms, text messaging, or other messaging technologies, allow one or more users to compose various messages and create conversation-threaded communications for interaction with one or more users. These threaded communications can be related by one or more associated message properties, such as by identifiers, shared subject line content in an email thread, or a common set of users. In many examples, files or other data can be attached to these messages to share documents, pictures, or other files with one or more users. However, file attachments can be cumbersome to manage when users interact with email or messaging systems, especially when a user desires to edit or alter a file attachment. Typically, a user wishing to edit a file attached to a message or email must first save any associated file to a separate location, then summon an editor or viewer application to modify the saved file. This sequential process can prevent the user from responding to an associated conversation without performing a series of steps to view a message, save an attached file, modify the file, create a reply message, and attach a modified file. This process can be especially difficult when a user has to interface with a smartphone or tablet device which might not have local storage readily accessible.

In a first example of enhanced handling of file attachments to networked messaging systems,FIG. 1is presented.FIG. 1illustrates implementation100suitable for implementing any of the architectures, processes, and operational scenarios disclosed herein. Specifically, implementation100includes messaging platform101comprising operating system (OS)110, messaging service120, user interface (UI)130, and optionally, editor140. Each of the elements of implementation100can be logically or communicatively coupled and executed on an associated computing system or processing system which can include elements as discussed below forFIGS. 3 and 5, although variations are possible.

In operation, message161is received into messaging service120. Message161includes one or more attachments, such as attachment162inFIG. 1. Messaging service120can present an indication of message161to a user, such as over user interface130. A user can select to view message161and modify attachment162, such as in editor140. Editor140can alter the contents of attachment162. The user can then select to reply to message161with a modified version of attachment162, and a reply message can be generated as a reply to message161which includes the modified version of attachment162.

FIG. 2further details example operation of the elements of implementation100. InFIG. 2, messaging service120presents (201) an electronic mail message to a user, the electronic mail message being associated with a conversation thread comprising one or more members and having a file attachment. InFIG. 1, message161is received into messaging service120. Message161can be received over a network interface, such as one or more packet links, or can be initially received by a network interface associated with implementation100which then transfers message161to messaging service120over one or more logical interfaces.

Message161includes attachment162, which in this example is a file comprising content. Attachment162can be a document, spreadsheet, image, media file, or any type of file, which can include compressed, encoded, or encrypted file types. When message161comprises an electronic mail (email) message, then attachment162can comprise any file type which is attached to an email and transferred by a user. Message161can be associated with threaded communications, such as conversation threads that span one or more messages received over time. In email examples, a threaded conversation can comprise an ongoing chain of communications which are linked by a common message history. This common message history can be correlated by a common subject line in email communications, which can include prefixes such as “RE:” (indicating responses) or “FWD:” (indicating forwarded communications), among others, so that a main portion of the subject line indicates the conversation thread. In other examples, the conversation thread can be indicated by a file attachment that is shared among messages, such as when a group of user is collaborating to edit or view a document and using email or other messaging platforms as an exchange medium.

Once message161is received and presented to a user, such as over UI130, then the user can view and edit the message or file attachment. A user might desire to modify the file attachment and send the file attachment to users of a communication thread associated with the message. In some examples, the user can select a user interface element, like a button, hyperlink, or menu selection, to initiate a reply message which corresponds to the original conversation thread associated with the message. This reply message typically will include a similar subject line as the original message and can include one or more recipients that correspond to members of the conversation thread (such as in “reply all” user selections). However, an attachment is typically not included with the reply message until the user indicates to attach a file to the reply message and finds an appropriate file to attach, using further dialog boxes or command-line input methods. Alternatively, a user can select to forward the message which might include the original, unmodified, file attachment along with a common subject line for the conversation thread. However, in forwarding examples, a user must still add recipients, which can be cumbersome to find and ensure parity with ones of the conversation thread. Advantageously, the examples herein discuss “reply with attachment” processes that can attach modified versions of file attachments, and also include recipients from originating conversation threads, along with other properties (which can include subject lines or thread identifiers).

Messaging service120receives (202) a reply instruction issued by the user to reply to the conversation thread with a modified version of the file attachment. This reply instruction can comprise a “reply with attachment” instruction that can be indicated by a user through a user interface element selection. A user interface element can include a graphical user interface element, such as a button, hyperlink, menu item, or other user interface element. The user interface element can include a command line interface with a textual command issued to indicate the reply and file to be included as an attachment.

The modified version of the file attachment comprises a changed version of the file attachment originally included with a message, such as a modified version of attachment162originally received with message161. The file attachment can be edited in an appropriate editor application, such as editor140, which can include an editor to modify text, formatting, image content, multimedia content, metadata, or other content included in the file attachment or associated with the file attachment. In some examples, editor140comprises a separate application than messaging service120, and messaging service120opens the file attachment within editor140from within messaging service120responsive to user commands. In other examples, editor140and messaging service140comprise a shared or similar application, such as when messaging service120includes editor140or messaging service120and editor140are included in a common software application. Once the file attachment is edited in the associated editing application, then the user can select to reply to the original conversation thread associated with the file attachment with the modified version of the file attachment.

Messaging service120establishes (203) a reply message associated with the conversation thread that includes the modified version of the file attachment. InFIG. 1, reply message163is shown with file attachment164. File attachment164comprises the modified version of attachment162in this example. Reply message163comprises a response to the conversation thread associated with message161. Thus, the reply message is established to be a further message in a conversation thread that is associated with message161, and typically will comprise a response to message161. However, the reply message also includes the modified version of the file attachment, such as modified by editor140. In many examples, the reply message also includes recipients which correspond to the conversation thread, which may comprise recipients found in message161. A dialog box or user interface configuration comprising the reply message can be presented to the user using UI130which includes the modified version of the file attachment along with any associated recipients. A user can then indicate to transfer the reply message, and can include further message contents or recipients beyond what is initially presented to the user.

To establish the reply message as a response to the conversation thread, messaging service120determines that the modified version of the file attachment corresponds to an unmodified file attachment162originally received with message161. A conversation thread associated with the unmodified file attachment can be identified using the identify of the file attachment which can include a file name, file identifier, or other identify or metadata associated with the file attachment. A message from the conversation thread associated with the file attachment (such as a most recent message of the conversation thread or a message from which the file attachment originated) can be identified and a reply message established which replies to the conversation thread. The modified version of the file attachment is also attached to the reply message automatically by messaging service120.

Messaging service120might search a message history, mailbox, or local message cache to identify a conversation thread or original message from which to establish a reply message. For example, a local mail cache or local mail store can be searched using a filename of the modified version of the file attachment to find a message that has a file attachment with the same filename A “reply all” dialog box can then be opened as a response to a message that included the file attachment of that filename, and the modified version of the file attachment can be attached thereto. Further processes to establish the reply message can be performed, such as discussed below forFIGS. 3-5.

Messaging service120transfers (204) reply message163with the modified version of the file attachment (164) for delivery to the one or more members of the conversation thread. This reply message can be transferred over one or more network interfaces which relay the reply message over any number of packet networks or packet links. In further examples, messaging service120relays this reply message over a logical link for delivery to users indicated as recipients in the reply message.

Advantageously, a user can indicate to reply to a conversation thread with a modified version of a file attachment using a single user interface action, namely a “reply with attachment” command. This can provide for more efficient responses to conversation threads than a sequence of separate user actions. Fewer user interaction steps are required in the examples herein, leading to more efficient operation of a computing system or computing systems which provide messaging service120. For example, file attachment editing processes in email applications can be executed in fewer processing operations and thus reducing workload and power consumption in processing devices of implementation101. Moreover, a smaller memory footprint can be employed to allow for more efficient use of operating system110and messaging service120. In some examples, a cloud-based or virtualized version of messaging service120is employed, and the processes discussed herein can reduce a quantity or need for local storage devices that a user employs when editing a file attachment, which can also reduce network traffic volumes and communication overhead.

Returning to the elements ofFIG. 1, operating system110comprises one or more execution elements which provide an execution platform between user-facing applications and input devices and associated execution hardware. In many examples, operating system110comprises a multitasking or multithreaded operating environment for user applications, such as messaging service120and editor140, among other applications or services, and also provides logical access to user interface130and various hardware elements, such as displays, user input devices, multimedia devices, and the like. Operating system110allows execution of messaging service120and editor140on associated processing systems and memory devices.

User interface (UI)130comprises one or more graphical or textual user interface elements which are presented to a user of implementation100for interacting with the elements of messaging service120, among other applications and services. UI130can comprise many graphical layers or graphical elements which are superimposed and correlated to render an interactive windowed or tablet interface to a user, such as over one or more display screens. UI130can also include various audio output elements for indicating audible user interface elements to a user. UI130receives user input from various input devices, such as a keyboard, mouse, touch screen, touch panel, gaming controller, or other user input devices which can be used in combination with such as mouse input, keyboard input, voice input, visual input, or other user input methods. This user input can be detected by UI130and translated into actions which can be interpreted by further elements of implementation100, such as operating system110or messaging service120.

Messaging service120and editor140each comprise user applications, such as a messaging application, content editing application, productivity application, gaming application, or communication application, which is executed using OS110on a processing system. Messaging service120and editor140each present one or more user interface elements, such as those rendered using UI130, to allow a user to interact with messaging service120and editor140. For example, in messaging service120, messages can be received over one or more network interface, displayed to a user via US130, and a user can view email, edit and compose emails, and edit any file attachments. Editor140provides for editing and viewing of file attachments, such as text documents, spreadsheets, images, media files, or other file attachment. For example, when a file attachment comprises a spreadsheet, editor140allows for viewing and editing of an organized array of cells which are presented to a user in a graphical arrangement, along with any associated menus, tabs, status indicators, and user input elements.

As a further example of a platform which provides enhanced messaging services,FIG. 3is presented.FIG. 3is a system diagram illustrating implementation300. Implementation300includes operating system320, application interface330, and email system340, and attachment cache350. Operating system320also includes user interface321. Attachment cache350can include ones of local cache351and distributed storage system352. The elements of implementation300can be communicatively coupled by one or more packet links, network interfaces, logical interfaces, communication interfaces, among others, such as those described herein forFIG. 1andFIG. 5.

The elements of implementation300can be included in network messaging platform380. When network messaging platform380is included in one or more computing devices, these devices can include a processing system, display panel with associated touch screen user interface, data storage systems, communication interfaces, and other associated computing and storage elements. The one or more computing devices operate as discussed herein. In some examples, network messaging platform380comprises a software environment, while in other examples, a portion of the software environment is included in one or more distributed computing systems and only user interface elements reside in a computing device associated with user301. In some examples, network messaging platform380is representative of one or more end user computing devices, such as a smartphone, tablet computer, computer, laptop, server, gaming device, media capture device, personal digital assistant (PDA), e-book, mobile Internet appliance, media player, or other devices, including combinations thereof. Network messaging platform380can communicate over one or more data links, which can include network interfaces, wireless interfaces, transceivers, network interface cards, or other links. Network messaging platform380comprises network transceiver circuitry, processing circuitry, and user interface elements. The transceiver circuitry typically includes amplifiers, filters, modulators, and signal processing circuitry. Network messaging platform380can also include user interface systems, network interface card equipment, memory devices, non-transitory computer-readable storage mediums, software, processing circuitry, or some other communication components.

In a first example, operating system320and application interface330are included in a user device, such as a smartphone, laptop computer, tablet computer, desktop computer, gaming device, or other user devices. In this first example, email system340and attachment cache350can be included in a remote system, such as a server, distributed computing system, cloud system, web application system, or other systems. When web-based or cloud-based email systems are employed, then application interface330can comprise a web interface or application programming interface (API) which a user can access email system340through a browser application or smartphone/tablet app. Application interface330can be omitted in some examples. In a second example, operating system320, application interface330, email system340, and attachment cache350can be included in a computing device, such as a smartphone, laptop computer, tablet computer, desktop computer, gaming device, or other user devices. Other configurations are possible and portions of each of the elements ofFIG. 3can be included in various devices and systems.

In operation, email system340receives email messages over one or more network interfaces or packet links, such as Internet Protocol (IP) links, transmission control protocol (TCP), or an email messaging protocol link comprising Post Office Protocol (POP), Internet Message Access Protocol (IMAP), Messaging Application Programming Interface (MAPI), or Microsoft Exchange protocols, including combinations and variations thereof. InFIG. 3, electronic mail message (email)361is shown being received by email system340, and email361includes attachment362. Attachment362can be a data file or other message attachment which comprises a document, image, encoded data, compressed file, executable code, scripting, or other message attachments, including combinations thereof. Attachment362is transferred with email361in this example, and can be a Multipurpose Internet Mail Extensions (MIME) compliant attachment or uuencoded attachment, among others.

Turning now to a further example operation of the elements ofFIG. 3,FIG. 4is presented.FIG. 4is a sequence diagram illustrating an example operation of the implementation300. The operations ofFIG. 4can instead be employed on any of the hardware/software elements discussed herein, such as implementation100inFIG. 1or computing system501inFIG. 5.

InFIG. 4, email system340receives one or more emails over an associated interface, such as over any of the network links or messaging protocol interfaces mentioned herein. The message is illustrated inFIG. 3as email361and includes attachment362. In this example, attachment362is a document comprising content, although other attachment types can be employed. Once received, email system340can cache or store email361and attachment362in any number of storage areas, such as attachment cache350. Attachment cache350can comprise any of local cache351or distributed storage system352. Local cache351can comprise a storage device local to email system340, such as a memory device, hard drive, or solid state storage device associated with a computing system of email system340. Distributed storage system352can comprise any number of storage devices which might be distributed over a geographic area and located remotely from email system340. Microsoft SharePoint®, Microsoft OneDrive®, or cloud storage systems are examples of distributed storage system352. In some examples, such as when email system340comprises a Microsoft Exchange-based system, email361and attachment362can be stored on a server or cloud storage system as well as stored on local computing device of user301.

Email system340can indicate email361to user301over a graphical user interface or other user interface which can be provided by operating system320and user interface321. User interface321can be a graphical user interface of an email application executed by user301on a computing device of user301. User interface321can be a web-based interface or portal interface through which user301can view email in a browser application executed by user301on a computing device of user301. User interface321can include smartphone or tablet apps which include one or more graphical user interfaces or web interfaces. User interface321can include a text-based or terminal interface.

User301can select to view email361and attachment362, as well as edit content of attachment362. The content of attachment362can be edited in a content editor or attachment editor environment, such as a word processor, spreadsheet application, media editor, or other editor application. In some examples, the editor application is incorporated in email system340, while in other examples, email system340instantiates an editor application with attachment362as a file to be opened and edited.

When an editor application or when email system340is used by user301to open attachment362for editing, user301might desire to respond to an existing email thread with the modified version of attachment362. In some examples, user301might have to save attachment362to local storage devices, then find the modified version when creating a new email or a reply email in a user interface of email system340. However, in the examples herein, an additional process is employed which allows for more efficient handling of modified attachments. Specifically, email system340presents a “reply with attachment” option to user301in user interface321, such as a specialized button or other user interface element.

Responsive to user301selecting “reply with attachment,” email system340will determine a conversation thread that is associated with the attachment open in the editor application and generate a reply email which has the modified version of the attachment as an attachment, as well as any associated members of the conversation thread applied as “TO:” recipients (or “CC:”/“BCC:” recipients if the thread has those members listed as such). An associated subject property of the email conversation thread can be included in the reply email along with any associated “RE:” designation if so configured. If user301instead replied to an email of the conversation thread without using the “reply with attachment” option, then a reply email can be generated, but the modified version of the file attachment would not be attached, and the user would be required to find the attachment in an associated storage device or storage location. Advantageously, the “reply with attachment” option allows a user to reply to an existing conversation thread from which the file attachment originated, and the modified version of the file attachment will be included automatically by email system340as an attachment. Moreover, the user need not save the modified version of the file attachment to an associated local storage device or cloud storage device before commanding email system340or an associated editor to “reply with attachment” with the modified version of the file attachment. Instead, the modified version of the file attachment can be attached to a reply email as described above without a save process which can take additional time and additional storage resources.

To determine the conversation thread associated with the file attachment open in the editor environment, email system340can perform a search of email information or a plurality of emails that are stored by email system340. For example, email system340might cache a plurality of emails and attachments in an associated email storage system, such as attachment cache350. Email system340can search this email storage system to correlate the currently open or edited attachment to a file attachment stored in the email storage system. This file attachment can be searched for using a file identifier or other property of the file attachment. For example, the file identifier can comprise a file name, attachment identifier, or other identifier. Email system340can identify an email which is associated with the file attachment, such as by searching the email storage system for an email which is correlated to the file attachment. Once the email is identified, then email system340can establish a reply email which replies to the email using properties of the email to establish the reply. For example, the conversation thread might have many emails associated therewith. A particular email from the conversation thread can be selected as the basis for the reply email, such as the email which originally contained the file attachment which was modified, or a last-received email if any intervening emails were received before editing of the file attachment or during editing of the file attachment. Various properties of the conversation thread can be carried forward and applied to the reply email, such as subject lines, recipients/members of the thread, message history, previous email text, and the like. The reply email will have the modified version of the file attachment included as an attachment.

Once the reply email is generated, then user301can add any additional information into the email, such as additional text, content, or other information, including further file attachments. User301can alter the reply email, such as by adding or removing recipients, or altering a subject line or other properties. User301can then select via user interface321to send or otherwise transfer the reply email for delivery to the recipients indicated in the reply email.

In alternative examples, a command line or text-based “reply with attachment” process can occur. Specifically, user301might have a modified version of a file attachment or a new file to attach to an email. User301can enter one or more text-based command line instructions into a command line interpreter to instruct email system340to generate a reply email with an attachment that is specified in the command line instruction. Specifically, a “mail:att” command can be established for use by user301in user interface321to instruct email system340to generate a reply email with an attachment specified as a parameter to the “mail:att” command. For example, user301can enter “mail:att filename doc” which would specify an attachment should be included in an email generated by email system340. This new email might be a new email which includes no recipients and subject line, but has the file attachment already included as an attachment by email system340. This new email might be a reply email to an existing conversation thread. In the examples of a reply email, email system340can responsively search for an associated conversation thread based on properties of the specific file attachment, such as a file name, file identifier, and the like. Once a thread which corresponds to the file attachment is found, then a reply message to that thread can be generated, such as described above. Although other parameters to the “mail:att” command can be included, such as conversation thread identifiers, recipients, subject lines, and the like, in the examples herein, only a file name need be specified and email system340can determine a conversation thread based on at least the file name. Also, the command example “mail:att” is merely exemplary, and other formats, commands, and syntax can be employed.

InFIG. 4,FIG. 5illustrates computing system501that is representative of any system or collection of systems in which the various operational architectures, scenarios, and processes disclosed herein may be implemented. Examples of computing system501include, but are not limited to, smart phones, laptop computers, tablet computers, desktop computers, hybrid computers, gaming machines, virtual machines, smart televisions, smart watches and other wearable devices, as well as any variation or combination thereof. Other examples include server computers, rack servers, web servers, cloud computing platforms, and data center equipment, as well as any other type of physical or virtual server machine, and any variation or combination thereof.

Computing system501may be implemented as a single apparatus, system, or device or may be implemented in a distributed manner as multiple apparatuses, systems, or devices. Computing system501includes, but is not limited to, processing system502, storage system503, software505, communication interface system507, and user interface system508. Processing system502is operatively coupled with storage system503, communication interface system507, and user interface system508.

Processing system502loads and executes software505from storage system503. Software505includes messaging environment506, which is representative of the processes discussed with respect to the preceding Figures.

When executed by processing system502to enhance message handling and attachment handling for network messaging applications, software505directs processing system502to operate as described herein for at least the various processes, operational scenarios, and sequences discussed in the foregoing implementations. Computing system501may optionally include additional devices, features, or functionality not discussed for purposes of brevity.

Referring still toFIG. 5, processing system502may comprise a micro-processor and processing circuitry that retrieves and executes software505from storage system503. Processing system502may be implemented within a single processing device, but may also be distributed across multiple processing devices or sub-systems that cooperate in executing program instructions. Examples of processing system502include general purpose central processing units, application specific processors, and logic devices, as well as any other type of processing device, combinations, or variations thereof.

Storage system503may comprise any computer readable storage media readable by processing system502and capable of storing software505. Storage system503may include 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. Examples of storage media include random access memory, read only memory, magnetic disks, optical disks, flash memory, virtual memory and non-virtual memory, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other suitable storage media. In no case is the computer readable storage media a propagated signal.

In addition to computer readable storage media, in some implementations storage system503may also include computer readable communication media over which at least some of software505may be communicated internally or externally. Storage system503may be implemented as a single storage device, but may also be implemented across multiple storage devices or sub-systems co-located or distributed relative to each other. Storage system503may comprise additional elements, such as a controller, capable of communicating with processing system502or possibly other systems.

Software505may be implemented in program instructions and among other functions may, when executed by processing system502, direct processing system502to operate as described with respect to the various operational scenarios, sequences, and processes illustrated herein. For example, software505may include program instructions for implementing enhanced attachment processing and message handling for network messaging platforms.

In general, software505may, when loaded into processing system502and executed, transform a suitable apparatus, system, or device (of which computing system501is representative) overall from a general-purpose computing system into a special-purpose computing system customized to facilitate enhanced attachment processing and message handling for applications. Indeed, encoding software505on storage system503may transform the physical structure of storage system503. The specific transformation of the physical structure may depend on various factors in different implementations of this description. Examples of such factors may include, but are not limited to, the technology used to implement the storage media of storage system503and whether the computer-storage media are characterized as primary or secondary storage, as well as other factors.

Messaging environment506includes one or more software elements, such as OS521, user applications522, and messaging service523. These elements can describe various portions of computing system501with which a user interacts. For example, OS521can provide a software platform on which user application is executed and allows for receipt and monitoring of input from user interface system508and delivery of messages and other content over communication interfaces. User applications522can be any application discussed herein, such as productivity, messaging, electronic mail, network messaging, editors, word processors, spreadsheets, or applications, and includes user interface elements which can be manipulated by a user.

In one example, messaging service523includes message engine524and editor525. Message engine524handles receipt and transfer of messages and attachments. Message engine524can present messages and attachments to users, such as through user interface system508. When a user desires to alter or modify an attachment associated with a message handled by message engine524, editor525can be employed. Editor525can have a user interface as illustrated by editor interface550inFIG. 5. Editor interface550includes several user interface elements, which can comprise command line, graphical, or web-based user interface elements, among others. InFIG. 5, “save” command527is shown and allows a user to save an attachment in editor525; “send as attachment” command28is shown and allows a user to send an attachment currently open in editor525as an attachment in a new message by message engine524; and “reply with attachment” command629is shown and allows a user to reply to a pre-existing conversation thread handled by message engine524with the attachment open in editor525. Editor interface550also includes content editing portion526that a user can make alterations or edits to content associated with the attachment.

User interface system508is optional and may include a keyboard, a mouse, a voice input device, a touch input device for receiving a touch gesture from a user, a motion input device for detecting non-touch gestures and other motions by a user, and other comparable input devices and associated processing elements capable of receiving user input from a user. Output devices such as a display, speakers, haptic devices, and other types of output devices may also be included in user interface system508. In some cases, the input and output devices may be combined in a single device, such as a display capable of displaying images and receiving touch gestures. User interface system508can instead provide output and receive input over a network interface, such as communication interface system507. In network examples, user interface system508might packetize display or graphics data for remote display by a display system or computing system coupled over one or more network interfaces.

User interface system508may also include associated user interface software executable by processing system502in support of the various user input and output devices discussed above. Separately or in conjunction with each other and other hardware and software elements, the user interface software and user interface devices may support a graphical user interface, a natural user interface, or any other type of user interface.

Communication between computing system501and other computing systems (not shown), may occur over a communication network or networks and in accordance with various communication protocols, combinations of protocols, or variations thereof. Examples include intranets, internets, the Internet, local area networks, wide area networks, wireless networks, wired networks, virtual networks, software defined networks, data center buses, computing backplanes, or any other type of network, combination of network, or variation thereof. The aforementioned communication networks and protocols are well known and need not be discussed at length here. However, some communication protocols that may be used include, but are not limited to, the Internet protocol (IP, IPv4, IPv6, etc.), the transmission control protocol (TCP), and the user datagram protocol (UDP), as well as any other suitable communication protocol, variation, or combination thereof.

In any of the aforementioned examples in which data, content, or any other type of information is exchanged, the exchange of information may occur in accordance with any of a variety of protocols, including FTP (file transfer protocol), HTTP (hypertext transfer protocol), REST (representational state transfer), WebSocket, DOM (Document Object Model), HTML (hypertext markup language), CSS (cascading style sheets), HTMLS, XML (extensible markup language), JavaScript, JSON (JavaScript Object Notation), and AJAX (Asynchronous JavaScript and XML), as well as any other suitable protocol, variation, or combination thereof.

Various improvements to message processing and attachment handling technology may be appreciated from the foregoing implementations. The ability of a network messaging application to provide user interface options for replying to conversation threads with modified attachments can provide for enhanced operation of messaging applications. The applications can become more efficient in handling of attachments and modification of attachments, which can reduce processing time and memory usage by reducing the need for a user to save attachments and search local drives manually to find such attachments for modification and transfer in existing messaging threads. These technical effects improve the functioning of network messaging applications and associated operating systems, reduce storage footprints and need for local storage devices (such as when these features are implemented in cloud-based or web-based applications), and allow users of smartphones and other touchscreen-based devices to edit attachments efficiently.

Certain inventive aspects may be appreciated from the foregoing disclosure, of which the following are various examples.

A computing apparatus comprising one or more computer readable storage media, a processing system operatively coupled with the one or more computer readable storage media, and program instructions stored on the one or more computer readable storage media comprising an electronic mail service, wherein the electronic mail service, when executed by the processing system, directs the processing system to at least present an electronic mail message to a user, the electronic mail message having a file attachment and being associated with a conversation thread comprising one or more members, receive a reply instruction issued by the user to reply to the conversation thread with a modified version of the file attachment, and responsively establish a reply message associated with the conversation thread that includes the modified version of the file attachment, and transfer the reply message with the modified version of the file attachment for delivery to the one or more members.

The apparatus of Example 1, comprising further program instructions, when executed by the processing system, direct the processing system to at least receive a view instruction from the user to view the file attachment, and responsively open the file attachment in a user interface from which modifications to the file attachment are performed to establish the modified version of the file attachment.

The apparatus of Examples 1-2, comprising further program instructions, when executed by the processing system, direct the processing system to at least, responsive to the reply instruction, determine the conversation thread associated with the file attachment based at least on properties of the modified version of the file attachment, and generate the reply message as having the modified version of the file attachment attached to the reply message and indicating at least recipients comprising the one or more members.

The apparatus of Examples 1-3, wherein the reply message is generated to further indicate at least a subject property of the conversation thread.

The apparatus of Examples 1-4, comprising further program instructions, when executed by the processing system, direct the processing system to at least determine the conversation thread associated with the file attachment by at least searching contents of a message cache that caches at least the electronic mail message, and correlate the modified version of the file attachment with the conversation thread based at least on the contents of the message cache and one or more properties of the modified version of the file attachment.

The apparatus of Examples 1-5, comprising further program instructions, when executed by the processing system, direct the processing system to at least correlate the modified version of the file attachment to the conversation thread by at least matching an identifier associated with the file attachment found among the contents of the message cache to an identifier associated with the modified version of the file attachment.

The apparatus of Examples 1-6, comprising further program instructions, when executed by the processing system, direct the processing system to at least receive an edit instruction from the user to edit the file attachment, and responsively provide the file attachment to an editor interface from which modifications to the file attachment are performed to establish the modified version of the file attachment, and receive an indication of the modified version of the file attachment from the editor interface along with the reply instruction, and responsively determine the conversation thread associated with the file attachment and generate the reply message as a response to the electronic mail message indicating recipients comprising the one or more members and having attached the modified version of the file attachment.

The apparatus of Examples 1-7, comprising further program instructions, when executed by the processing system, direct the processing system to at least receive the reply instruction responsive to a command entered in command line interface, wherein the command indicates the modified version of the file attachment, and responsive to the reply instruction, identify the conversation thread based on properties of the modified version of the file attachment.

A method of operating a networked messaging system, the method comprising presenting a message to a user, the message being associated with a conversation thread comprising one or more members and having a file attachment, receiving a reply instruction issued by the user to reply to the conversation thread with a modified version of the file attachment, and responsively establishing a reply message associated with the conversation thread that includes the modified version of the file attachment, and transferring the reply message with the modified version of the file attachment for delivery to the one or more members.

The method of Example 9, further comprising receiving a view instruction from the user to view the file attachment, and responsively opening the file attachment in a user interface from which modifications to the file attachment are performed to establish the modified version of the file attachment.

The method of Examples 9-10, further comprising, responsive to the reply instruction, determining the conversation thread associated with the file attachment based at least on properties of the modified version of the file attachment, and generating the reply message as having the modified version of the file attachment attached to the reply message and indicating at least recipients comprising the one or more members.

The method of Examples 9-11, wherein the reply message is generated to further indicate at least a subject property of the conversation thread.

The method of Examples 9-12, further comprising determining the conversation thread associated with the file attachment by at least searching contents of a message cache that caches at least the message, and correlating the modified version of the file attachment with the conversation thread based at least on the contents of the message cache and one or more properties of the modified version of the file attachment.

The method of Examples 9-13, further comprising correlating the modified version of the file attachment to the conversation thread by at least matching an identifier associated with the file attachment found among the contents of the message cache to an identifier associated with the modified version of the file attachment.

The method of Examples 9-14, further comprising receiving an edit instruction from the user to edit the file attachment, and responsively providing the file attachment to an editor interface from which modifications to the file attachment are performed to establish the modified version of the file attachment, receiving an indication of the modified version of the file attachment from the editor interface along with the reply instruction, and responsively determining the conversation thread associated with the file attachment and generating the reply message as a response to the message indicating recipients comprising the one or more members and having attached the modified version of the file attachment.

The method of Examples 9-15, further comprising receiving the reply instruction responsive to a command entered in command line interface, wherein the command indicates the modified version of the file attachment, and responsive to the reply instruction, identifying the conversation thread based on properties of the modified version of the file attachment.

A network messaging platform, comprising a network interface element configured to receive a message associated with a conversation thread directed to a user of the network messaging platform, the message having at least a file attachment. Responsive to an attachment edit command issued by the user for the file attachment, a user interface configured to call an editor interface to edit the file attachment, wherein the editor interface is configured to receive a reply command issued by the user to reply to the conversation thread with an edited version of the file attachment. A message composition element configured to process an indication of the reply command to establish a reply message as a response to the conversation thread attaching the edited version of the file attachment, and the network interface element configured to transfer the reply message with the edited version of the file attachment for delivery to one or more members of the conversation thread.

The network messaging platform of Example 17, comprising the message composition element configured to establish the reply message by at least correlating the edited version of the file attachment to the conversation thread.

The network messaging platform of Examples 17-18, comprising, responsive to the indication of the reply instruction, the message composition element configured to determine the conversation thread from among a plurality of messages with associated conversation threads handled by the network messaging platform, and establish the reply message as having one or more recipients comprising the one or more members of the conversation thread and having a subject line property in accordance with the conversation thread.

The network messaging platform of Examples 17-19, comprising the message composition element configured to determine the conversation thread from among the plurality of composition threads by at least processing a message cache maintained by the network messaging platform that comprises the plurality of messages with the associated conversation threads to identify the conversation thread as being associated with the modified version of the file attachment.