FIELDThe present invention relates generally to computer software, computer program architecture, data and database management, social media, and web applications. More specifically, techniques for electronic mail processing and publication for shared environments are described.
BACKGROUNDElectronic messaging is an important function for sharing data with other individuals, organizations, or entities. Conventional electronic messaging solutions such as electronic mail (hereafter “email”) applications, servers, and platforms allow users to forward, send, and receive emails. However, due to large amounts of information and data transferred using email, there are significant problems associated with conventional solutions that create substantial time and cost inefficiencies.
Some problems associated with conventional solutions do not facilitate searching of emails to locate specific messages or groups of related messages (i.e., “threads”) by a particular topic, but instead rely upon general search or indexing facilities built into conventional electronic messaging solutions, which can be very time consuming for users. Inaccurate and difficult to use, general search or indexing facilities are typically keyword-based and fail to provide for chronologically-ordered and relevant groupings of emails. In a corporate or business context, finding timely specific emails is often important for uses such as auditing, but can be expensive and require specialized computer programs, software, or applications (hereafter “applications”) in order to sift through large volumes of email data. For individuals, finding emails is also difficult, but for various types of users, sharing emails is typically reliant upon manual forwarding or sending operations. In other words, conventional solutions are limited in their ability to provide for collaborative tools to share emails, which often acts as a primary form of communication for individuals and organizations. Some conventional forms of social media allow for users to share data with each other, including manually posting emails and included content. However, these conventional solutions do not allow for the protection of user privacy nor provide for collaborative actions such as commenting or forwarding to yet other users.
Further, large quantities of emails and data stored or attached to these emails can lead to inefficient techniques for organizing electronic messaging data. As a conventional example, users are often reliant upon the use of internal file folders or structures that must be created manually into which emails (and attachments) can be classified. Further, once classified or stored, it is time consuming to retrieve an email or share it with other users who may find the data contained within a particular message to be useful or valuable, requiring a user to manually forward the email.
Thus, what is needed is a solution for electronic mail processing and publication for shared environments without the limitations of conventional techniques.
BRIEF DESCRIPTION OF THE DRAWINGSVarious embodiments or examples (“examples”) are disclosed in the following detailed description and the accompanying drawings:
FIG. 1 illustrates an exemplary system for electronic mail processing and publication for shared environments;
FIG. 2 an exemplary application architecture for electronic mail processing and publication for shared environments;
FIG. 3 illustrates an exemplary shared environment for publication of processed electronic mail messages;
FIG. 4A illustrates a further exemplary shared environment for publication of processed electronic mail messages;
FIG. 4B illustrates an alternative exemplary shared environment for publication of processed electronic mail messages;
FIG. 5 illustrates another exemplary shared environment for publication of processed electronic mail messages;
FIG. 6A illustrates an exemplary process for electronic mail processing and publication for shared environments;
FIG. 6B illustrates an alternative exemplary process for electronic mail processing and publication for shared environments;
FIG. 7 illustrates a further exemplary process for electronic mail processing and publication for shared environments;
FIG. 8 illustrates an exemplary process for transforming email addresses for electronic mail processing and publication for shared environments; and
FIG. 9 illustrates an exemplary computer system suitable for electronic mail processing and publication for shared environments.
DETAILED DESCRIPTIONVarious embodiments or examples may be implemented in numerous ways, including as a system, a process, an apparatus, a user interface, or a series of program instructions on a computer readable medium such as a computer readable storage medium or a computer network where the program instructions are sent over optical, electronic, or wireless communication links. In general, operations of disclosed processes may be performed in an arbitrary order, unless otherwise provided in the claims.
A detailed description of one or more examples is provided below along with accompanying figures. The detailed description is provided in connection with such examples, but is not limited to any particular example. The scope is limited only by the claims and numerous alternatives, modifications, and equivalents are encompassed. Numerous specific details are set forth in the following description in order to provide a thorough understanding. These details are provided for the purpose of example and the described techniques may be practiced according to the claims without some or all of these specific details. For clarity, technical material that is known in the technical fields related to the examples has not been described in detail to avoid unnecessarily obscuring the description.
In some examples, the described techniques may be implemented as a computer program or application (“application”) or as a plug-in, module, or sub-component of another application. The described techniques may be implemented as software, hardware, firmware, circuitry, or a combination thereof. If implemented as software, the described techniques may be implemented using various types of programming, development, scripting, or formatting languages, frameworks, syntax, applications, protocols, objects, or techniques, including ASP, ASP.net, .Net framework, Ruby, Ruby on Rails, C, Objective C, C++, C#, Adobe® Integrated Runtime™ (Adobe® AIRT™), ActionScript™, FIex™, Lingo™, Java™, Javascript™, Ajax, Perl, COBOL, Fortran, ADA, XML, MXML. HTML, DHTML, XHTML, HTTP, XMPP, PHP, and others. Design, publishing, and other types of applications such as Drcamweaver®, Shockwave®, Flash®, Drupal and Fireworks® may also be used to implement the described techniques. Database management systems (i.e., “DBMS”), search facilities and platforms, web crawlers (i.e., computer programs that automatically or semi-automatically visit, index, archive or copy content from, various websites (hereafter referred to as “crawlers”)), and other features may be implemented using various types of proprietary or open source technologies, including MySQL, Oracle (from Oracle of Redwood Shores, Calif.), Solr and Nutch from The Apache Software Foundation of Forest Hill, Md., among others and without limitation. The described techniques may be varied and are not limited to the examples or descriptions provided.
FIG. 1 illustrates an exemplary system for electronic mail processing and publication for shared environments. Here,system100 includesnetwork102, clients104-110, server112, databases114-116, andwebsite118. “Elements” may refer to one or more ofnetwork102, clients104-110, server112, databases114-116, andwebsite118 shown in association withsystem100. As shown, the type, quantity, configuration, topology, and other characteristics are provided for purposes of illustration only and may be varied beyond the examples shown and provided. In some examples,network102 may be any type of data network including, without limitation, a local area network (LAN), wide area network (WAN), municipal area network (MAN), wireless local area network (WLAN), computing cloud, or any other type of aggregation of computing, networking, storage, or processing resources. As shown, clients104-110 may be implemented as a desktop computer (e.g. client104), mobile communication (i.e., voice and data) device (e.g., client106), mobile computing device (e.g., client108), or notebook or laptop (i.e. portable) computing device (client110). Each of clients104-110 may be in data communication with server112 usingnetwork102. In some examples, server112 may be a web, application, email, or other type of server, without limitation.
Databases114-116, in some examples, may be directly or indirectly in data communication with server112, which may be implemented as described above to perform one or more applications, deliver services or resources to clients104-110, execute or compile applications, or otherwise provide any type of processing capability or facility, without limitation. Data associated with the techniques described herein may be stored in one or both of databases114-116. In other examples, data may also be stored in embedded memory, of any type, with server112 or any of clients104-110. Still further, data may be stored and retrieved by server112 or any of clients104-110 from any of databases114-116 without limitation as to any given database schema or structure. For example, an email may be transmitted to a “shared destination,” which may be an email server (e.g., server112), email account, or other resource that is configured to accept email messages sent using messaging protocols such as Simple Mail Transfer Protocol (hereafter “SMTP”) and received using other protocols such as Internet Message Access Protocol (hereafter “IMAP”) or Post Office Protocol (hereafter “POP”), among others. In some examples, email receipt may be indicated automatically or semi-automatically to server112. In other examples, received emails sent to an email account or client may be retrieved periodically based on a set or irregular schedule. For example, an application hosted and running on server112 may be configured to retrieve emails for further processing, as described below, on a set schedule (e.g., every 1, 5, 30, 60 minutes, or the like). Using various types of email receipt protocols (e.g., IMAP, POP, or others), emails may be retrieved from an email account or shared destination. Once retrieved by server112, emails may be stored indatabase114 and/or116 and processed further to generated processed messages for posting to a shared environment (e.g., website118). As used herein, an email account to which emails are sent for posting in a shared environment may be referred to as a “shared destination.”
A shared destination may be, in some examples, an email account hosted on server112 that is configured to receive emails sent from various sources and intended for posting to a given website (e.g., website118). Data associated with emails sent to a shared destination may be stored indatabase114 or, in other examples, remotely stored indatabase116.
As shown here,website118 may be described as a “shared environment” or facility to which data, information, or other content may be posted or published. As used herein, “posting” or “publication” may be used interchangeably and are intended to refer to the format, transmission, upload, design, layout, and other parameters of content manipulated relative to a given environment (e.g. website118, among others). In some examples,website118 may be a website at which emails, attachments, data, information, or other types of content may be viewed, retrieved, posted, or deleted, without limitation. In other examples,system100 and the above-described elements may be varied in function, structure, configuration, topology, quantity, type, or other aspects and are not limited to the examples shown.
FIG. 2 an exemplary application architecture for electronic mail processing and publication for shared environments. Here,application200 includesbus202,logic module204,database206,retrieval module208,XML engine210,email processing engine212,security module214, andposting module216. In some examples,bus202 may be implemented as any type of data communication bus for transferring data between any oflogic module204,database206,retrieval module208.XML engine210,email processing engine212,security module214, andposting module216, without limitation to any given type, configuration, capacity, rating, or other characteristic. As shown,application200 and the elements described herein (i.e.,logic module204,database206,retrieval module208,XML engine210,email processing engine212,security module214, and posting module216) may be implemented as hardware, software, firmware, circuitry, or a combination thereof and are not limited to any specific application structure or formatting, scripting, or programming language.
In some examples,logic module204 may be configured to provide command and/or control signals, instructions, and functions to direct one or more ofdatabase206,retrieval module208,XML engine210,email processing engine212,security module214, andposting module216.Logic module204, for example, may directretrieval module208 to identify, locate, and retrieve emails sent to a shared destination (e.g., IMAP or POP email account).Logic module204 may also be configured to process retrieved emails to generate processed messages (i.e., retrieved emails that have been processed by email processing engine212) for posting or publication in a shared environment (e.g., website118 (FIG. 1)) prior to being directed to postingmodule216 for posting to the shared environment (e.g., website118). Further,logic module204 may be configured to evaluate retrieved emails to determine whether a security threat (e.g., malicious software (hereafter “malware”), spyware (i.e., malware intended to passively gather data and information from a host operating system, computer, or application), cross site scripting, and others.Security module214 may be implemented using various types of security software, firmware, or hardware, such as intrusion detection and prevention systems, anti-virus, or others, without limitation, that are intended to detect whether an email to be processed byemail processing engine212 is a security threat that, once posted to a shared environment (e.g., website118) may be accessible and pose a security risk to other clients.
As shown, data may be stored indatabase206 using any type of database, database schema, or storage mechanism, without limitation, including storage area networks (hereafter “SAN”), network attached storage (hereafter “NAS”), cloud storage, or the like. Further, retrieved emails may be stored using various types of markup and formatting languages such as XML and others.XML engine210 is an example of a type of facility or resource that may be used to evaluate, format, and generate XML-formatted data to be stored, for example, indatabase206 or, as another example, to be processed for posting to a shared environment (e.g., website118) byemail processing engine212 andposting module216. In other examples,application200 may be implemented in any type of application environment, distributed or otherwise, using one or more application servers, computers, or computing platforms from which to host. Apart from the examples shown and described,application200 and the above-described elements may be varied in function, structure, format, language, configuration, or other aspects and are not limited to any specific implementation.
FIG. 3 illustrates an exemplary shared environment for publication of processed electronic mail messages. Here,window300 includes sharedenvironment302,title tag304,process messages306, sitemap link308,sort window310,pulldown menu312, andsearch field314. In some examples,window300 may be representative of a graphical user interface display that is presented by website118 (FIG. 1). As shown, sharedenvironment302 may be a graphical display environment in which processed messages may be displayed and reviewed. Based ontitle tag304, emails may be listed and displayed based on, for example, popularity (e.g. the number of comments posted in response to a given email posting, most popular today, most popular in past week, most popular in past month, and the like), age (i.e., newest-to-oldest, oldest-to-newest, and the like), trends of immediate interest (i.e., emails that are of immediate interest to the overall user or viewer population), or other factors apart from those described. As used herein,title tag304 may be a descriptive title or categorical reference associated with a given email and other emails that are contextually or thematically related. In some examples, title tag305 may use a format such as “<subject line of email>|SocialMail” in order to aid in search engine optimization (hereafter “SEO”). By using the subject line of an email as part of a header tag (e.g., H1 tag), the content, data, or information contained may be used to enhance search engine optimization to allow other users to find and retrieve processedmessages306. By using modifying the header tags of retrieved emails, processedmessages306 can be improved for SEO, facilitating searches performed for various topics, themes, keywords, or emails.
In some examples, the quantity of processed messages may be set to a discrete number per page (e.g., 10 per page, 100, 1000, customizable, user-specified, system-specified, rules-based, and others). Further, when a user navigates to a given page using, for example, a web (i.e., the World Wide Web (hereafter “web”)) browsing application processedmessages306 may be sorted based on criteria specified insort window310 by usingpulldown menu312. In this example, criteria such as “Newest,” “Trending Now,” “Most Popular Today,” “Most Popular Past Week,” and “Most Popular Past Month” may be chosen in order to sort processedmessages306. When selected, a criterion may cause processed sharedenvironment302 to be rendered such that the order is determined based on the selected criteria. In other examples, posted emails may be ranked using various techniques and, as an example, identified using the “Trending Now” feature. For example, posted emails may be ranked based on determining the number of users to which the posted email has been forwarded (e.g., if a posted email has been forwarded previously multiple times to an aggregate pool of 20 recipients, a quantitative rank may be assigned using various techniques, including assigning a weighted or unweighted ranking value based on the number of recipients (e.g., in the example above, 20)). In other examples, rankings may be performed differently using various techniques or algorithms, without limitation. As an indicator of activity within aservice providing window300, an “activity stream” or other type of feed or data stream may be created in which one or more posted emails, replies, comments, votes, rankings, or other activities occurring may be posted generally for users to view (in some contexts such as within corporate enterprises, this and other features may be suppressed in order to confine the applicability of the described techniques to prescribed enterprise purposes). In some examples, users may opt-in and subscribe to an activity stream in order to ensure that those users who do not elect to receive updates as to activity are not receiving unwanted notifications. In other examples, processedmessages306 may be sorted or displayed differently and are not limited to those shown and described.
Here, processedmessages306 may also be searched using a facility that has an interface such assearch field314 to permit the entry of keywords or other items that may be used to select the appearance of processedmessages306. A search of processedmessages306 may be used to find email content (i.e., content, data, information, media, rich media, text, or the like) from a given pool of emails posted to sharedenvironment302. When posted, emails may be made “anonymous” (i.e., remove identifying information such as email addresses) in order to protect user privacy, as described in greater detail below in connection withFIG. 5. In some examples, each of processedmessages306 may be treated like an individual post that, when selected, is hyperlinked to another page where related emails of the same topic may be listed, as described below in connection withFIGS. 4A-4B.
Referring back toFIG. 3, sharedenvironment302 can be provided as a destination website (e.g. website118) that enables the entry or submission of email content for various types of purposes (e.g., interest, humor, amusement, fun, business, enterprise/corporate, collaborative work sharing, and others, without limitation). Email content may be submitted using sharedenvironment302 to permit other users to enter comments or submit other emails related to a given topic or original email (i.e., threading), as indicated bytitle topic304. Each email submitted may be processed by email processing engine212 (FIG. 2) to be generated into a processed message and posted as part of a thread.
In other examples, users can view emails associated with topics of various types of interests. Within a corporate organization or enterprise (including for-profit, non-profit, governmental organizations), emails may be submitted for collective sharing and collaborative input by other members of the same organization. Likewise, security module214 (FIG. 2) may be configured to provide additional security to permit authenticated use by members of a given organization as opposed to enabling sharedenvironment302 to be publicly accessible. Generally, sharedenvironment302 may be used as a forum for the sharing of email content that does not require the manual formatting of email content for posting. In other words, a user having an account recorded in one or both of databases114-116 may forward or send emails to a service hosted by server112, which may be processed by email processing engine212 (as described in greater detail below in connection withFIG. 5) and posted to sharedenvironment302. Once made available to a community (e.g., public, closed, non-public, corporate, enterprise, and the like) of users, other emails may be posted directly to sharedenvironment302.
Additionally, sitemap link308 may be used to hyperlink (i.e., linking (i.e. pointing a web browsing application to another address and retrieving and displaying content from that location) to another page of website118) to another page ofwebsite118 to retrieve and view information associated with posts (i.e. publications) of processed messages to sharedenvironment302. In some examples, by interacting with sitemap link308, another web page is rendered that displays a list of processed messages classified by the month and year (i.e., posting date). Each entry of the list of processed messages (not shown) may be hyperlinked to another page that, when invoked, displays another page listing subject lines of individual posted processed messages and an excerpt of the related email. In some examples, the subject lines may also be hyperlinked to the complete post, which is displayed when the links are invoked. In other examples, the above-described examples may be varied in function, structure, format, language, configuration, or other aspects and are not limited to any specific implementation.
FIG. 4A illustrates a further exemplary shared environment for publication of processed electronic mail messages. Here,window400 includes sharedenvironment402,title tag404, processedmessages406,attachment icon408, and threadedmessages410. As shown, if a hyperlink associated with one of processed messages306 (FIG. 3) is invoked another web page may be rendered similarly to that presented inwindow400. In some examples, a processed message and related processed messages may be presented in sharedenvironment402. A selected processed message may be indicated bytitle tag404 and subsequent processed messages submitted in response or in relation totitle tag404 may be presented as a thread, as shown by processedmessages406. Further, one or more of processedmessages406 may have an attachment (i.e., an attached file, document, image, or other data or information), which may be indicated using, for example,attachment icon408. In other examples, different types of icons, indicators, or indicia may be used to indicate visually or graphically whether an attachment is present. Further,attachment icon408 may be hyperlinked to enable downloading, opening, viewing, or otherwise interacting with an attachment when a mouse pointer of other human computing interface (i.e., “HCI”) or input or input-output device is used to select (i.e., invoke)attachment icon408. Still further, other emails may be submitted for generation of additional processed messages as extended threads, as shown by threadedmessages410.
As shown, each of processedmessages406 may be hyperlinked and, when invoked, may initiate the instantiation and rendering of another window that displays data, information, or other content associated with the selected processed message. As described in greater detail below in connection withFIG. 5, a selected processed message may be configured to direct a web browsing application (not shown) to an address that is associated with another web page that presents content such as the original email of the processed message selected. Some data, information, or content may also be modified in the new window (not shown) in order to provide data security, prevent unauthorized access, or perform other functions that would be beneficial to a collaborative data sharing environment such as sharedenvironment402. In still other examples, window and sharedenvironment402 may be implemented differently in layout, design, function, structure, features, or other aspects and are not limited to those shown and provided.
FIG. 4B illustrates an alternative exemplary shared environment for publication of processed electronic mail messages. Here,window400 includes sharedenvironment402, sections420-430, data432-434, andbutton436. In some examples,window400 may be implemented as a graphical user interface such as that associated with a web browser or other web browsing application. As shownwindow400 may be configured to present a page that displays several different functions or structures. For example,section420 may be implemented to present the number of votes associated with a given email that is submitted and posted, as indicated by data432 (e.g., “Subject of email,” which may be identified from a processed email), data434 (e.g., “time of post,” which may also be posted from a processed email), section422 (e.g., the body of the email, section426 (e.g., identification of a posting user based on an “anonymized” email address or other user name (e.g., “user xyz,” which may be hyperlinked to another page that provides one or more details associated with a given user. Alternatively, when an email is posted, a user may “claim” ownership of a given email by creating a user account, such as that described herein, associated with the sending email address of the posted email.
Further, any email that is posted inwindow400 may also include information associated with the number of votes received by other users (e.g., section420), comments from one or more other users, which may also include replies to comments from the posting email sender (e.g., section424), people indicating their “like” (or in some examples, dislike (not shown)) of the posted email (e.g., section428), or related information or data (e.g., other posts that may be related contextually, thematically, by sender, by topic, and others, without limitation) associated with the given posted email (e.g., section430). In some examples, users may vote for various purposes, including expressing their like, dislike, favor, disfavor, or other action or expression associated with a given posted email. Still further, if a given reader (i.e., user) likes the posted email, she may elect to share the post with another user by using an interactive feature or function such asbutton436 that may open another window (not shown), field (not shown), interface (not shown), or the like that permits entry of another user's identifying information (e.g., email address, user name, or the like) in order to share the posted content. As an example, third party applications such as Facebook. Inc. of Menlo Park, Calif., may be coupled to an application implementing the described techniques (including, but not limited to window400) enabling users (e.g., user xyz) to share the posted content with other users using the third party application (e.g., Facebook, Twitter (as developed by Twitter, Inc. of San Francisco, Calif.), blogs, and other online applications, social media, media, or the like, without limitation). In some examples, users may not have an account with other social media business, websites, or the like. However, the described techniques enable users to post content (e.g., mails) and share them with other users through, for example, an application programming interface (API) to these other websites using posting module216 (FIG. 2). Referring back toFIG. 4B, users may also have accounts with third party websites and features may be included to enable these users to share content using the described techniques. In other words, the described techniques may be implemented as a service apart from various types of content or social media or entertainment websites, but enable users to share, send, forward, reply to, retrieve, or perform other functions associated with posted emails without requiring the creation of user accounts. As another example, the techniques described herein may be used by individual or organizations such as corporate enterprises.
For example, a corporate enterprise may use the described techniques in order to provide a closed or private (e.g., corporate or in-enterprise) forum or enterprise for its employees to share email content in a collaborative manner. In some examples, corporate employees may post emails using their corporate email addresses. In other examples, corporate employees may post emails using assigned or self-identified user names that mask an individual email address in order to prevent unwanted responsive email or comments to the posted content. In still other examples, by posting emails using the described techniques, various individuals or stakeholders within a corporate organization may be placed on a notice of a given user's posted email without requiring the user to individually and specifically identify various addressees. The described techniques aid in eliminating time and labor-intensive email creation efforts that corporate users often must undergo in order to notify supervisors, managers, executives, co-workers, project team members, and the like.
As shown, various types of purposes may motivate the described techniques for use within a corporate enterprise. In some examples, when a user is included as an addressee on a posted email, she may elect to stop or continue receiving notification of the posted emails, comments, votes, and other actions associated with these. In other examples, posted email subject lines may be used to initiate a discussion forum associated with the given subject. For example, if a subject line states “Sales Contract,” the subject line may render the posted email and associated content (e.g.,FIG. 4B) available to a user when constructing an email, regardless of whether the user is the original author of the email. In other words, a user can use the described techniques to send an “inline” or in-thread reply or forward the email to another user who is separate and apart from the population having access to the posted email (in some examples, the user may be outside of the corporate enterprise or organization). In still other examples, window and sharedenvironment402 may be implemented differently in layout, design, function, structure, features, or other aspects and are not limited to those shown and provided.
FIG. 5 illustrates another exemplary shared environment for publication of processed electronic mail messages. Here,window500 includes sharedenvironment502,title tag504, processedmessage content506,comment function508,share function510,flag function512, likefunction514, do not likefunction516, and plug-infunction518. In some examples, the quantity, type, function, structure, or other aspects ofwindow500 and the elements shown may be varied and are not limited to those presented, which are provided for purposes of exemplary explanation. As shown, when one of processedmessages406 is selected, a web browsing application or other type of client interface may be opened inwindow500, displaying processedmessage content506 and indicating it is related to the selected processed message bytitle tag504
Further, sharedenvironment502 may be designed and implemented to provide one or more functions that may be used in connection with processedmessage content506. For example, a comment may be entered in association with processedmessage content506 by interacting withcomment function508, which may be implemented as a button or link. When selected,comment function508 may be configured to open a field, form, or altogether new web page in which a user may enter a subsequent comment using a variety of formats. Likewise, if selected,share function510 may be used to share processedmessage content506 with another user by, for example, mailing or using text-based messages via simple messaging service (i.e. “SMS”) or another format or protocol. Further, processedmessage content506 may also be “flagged” or indicated as being inappropriate, undesirable, copied, or otherwise by invokingflag function512. Other functions that may be invoked include likefunction514 and do not likefunction516.
In some examples, if a user “likes” or wishes to publicly indicate her favor for processedmessage content506, she may place a tag or mark to indicate such by invoking likefunction514. Likewise, she may also invoke do not likefunction516 to indicate that processedmessage content506 is undesirable to her. By invoking popularity-related functions such as these, ranking of publishedmessage content506 may be performed. As yet another function, plug-infunction518 may be invoked to connect, couple, distribute, publish, send, re-send, or perform other functions associated with a third-party website or service. For example, social media websites that permit user posting of data may provide an application programming interface (“API”) that may be used to feed content in a given format for posting or publication. By invoking plug-infunction518, processedmessage content506 may be posted to other shared environments such as Facebook (as developed by Facebook, Inc. of Palo Alto, Calif.), LinkedIn (as developed by LinkedIn, Inc. of Mountain View, Calif.), and many other social media-related services, sites, and destinations. In other examples,window500 and the above-described elements may be implemented differently in layout, design, function, structure, features, or other aspects and are not limited to those shown and provided.
FIG. 6A illustrates an exemplary process for electronic mail processing and publication for shared environments. Here,process600 starts by evaluating one or more data packets associated with an email that is received at a shared destination such as an email account or server (602). Upon detecting, based upon the evaluation of data packets to determine whether mail has been received (using either an IMAP or POP-based protocol), the received email is retrieved (604). Once retrieved, the email is processed to generate a processed message, such as that described above in connection withFIGS. 3-5 (606). Once processed, a processed message is posted to a shared environment such as website118 (FIG. 1) (608).
As shown, data may be analyzed using various techniques. For example, data packets may be evaluated by analyzing a given domain associated with the sending email address. A corporate enterprise, as an example, may have a given domain (e.g., company.com) that is evaluated in order to provide message visibility to other users having the same domain. This may be implemented in order to provide a service to users and/or accounts within the given domain in order to prevent access to information or data. In other examples, the above-described process may be varied in the implementation, order, function, or structure of each or all steps and is not limited to those provided.
FIG. 6B illustrates an alternative exemplary process for electronic mail processing and publication for shared environments. Here,process610 begins by processing an email submitted using the described techniques by removing email headers, which may include one or more email addresses (e.g., sender, destination, intermediate (i.e., email addresses found within a thread of emails such as a forward or chain of multiple replies, and the like) (612). For privacy, security, and other similar reasons, source-identifying information such as email addresses may be removed. In some examples, a received email may be processed for privacy reasons by parsing data associated with the posted email. The email address may be stored along with any non-message data, which may include attachments or embedded images of any kind or format (614). Non-message data, in some examples, may also be identified as any type of information or data that is not related to the message body. In other examples, non-message data may be any data that is not found within the payload of a message body. In still other examples, data to be stored in a database (e.g., database206 (FIG. 2)) may be determined differently. The email address is then processed to identify any email addresses within the header or the body, which may be stored as fields or records associated with the sending email address in a database (616). A determination is made as to whether the email being processed is in HTML (i.e., Hyper Text Markup Language) or an HTML-based format (618). If the email being processed is in HTML or an HTML-based format (e.g., XHTML, DHTML, XML, and others, without limitation), then the email is processed for security threats (e.g., virus, malware, spyware, cross-site scripting, and others, without limitation) (620). If the email is not in HTML or an HTML-related format, then process610 does not perform a security check.
In some examples, a check may be performed to determine whether the email being processed was previously processed (622). If the email was not previously processed, a new post with the email should be created (624). If the email was previously processed, in some examples, a vote count associated with the email may be incremented or increased. In other examples, the above-described process may be performed or implemented differently in steps, order, function, or other aspects, without limitation to those provided.
FIG. 7 illustrates a further exemplary process for electronic mail processing and publication for shared environments. As an exemplary illustration of generating processed messages,process700 may be implemented. Here,process700 starts by storing a copy of a retrieved email and recording the email address of the sending account or client (702). After storing indatabase114 and/or116 (FIG. 1) a copy of the retrieved email and email address of the sending account or client, the retrieved email is evaluated to identify whether there are email addresses within the header or body (i.e., payload) data of the email (704). A determination is made as to whether any email addresses are identified (706). If an email address is identified in either the header or body of the retrieved email, then the identified email addresses are transformed, which is described in greater detail below in connection withFIG. 8 (708).
Referring back toFIG. 7, if no email address is identified, then the retrieved email is further processed by evaluating the format of the email to determine whether it is in an HTML-based format (710). A determination is made as to whether the retrieved email is in an HTML-based format (712). If the email is in an HTML-based format, then it is further evaluated for security threats such as cross site scripting and others as described above (714). A determination is made as to whether a security threat is present (716). If a security threat is identified, then the retrieved email is purged and not stored indatabase114 and/or116 (718). In other examples, an alert message or other warning may be sent to the user of system100 (FIG. 1) to indicate that a security threat was found. If no security threat is found, then a processed message is generated using the transformed email addresses (720). After generating a processed message, it may be posted to a shared environment (e.g.,website118 or shared environments302 (FIG. 3),402 (FIG. 4), or502 (FIG. 5)) (722). In other examples, the above-described process may be varied in the implementation, order, function, or structure of each or all steps and is not limited to those provided.
FIG. 8 illustrates an exemplary process for transforming email addresses for electronic mail processing and publication for shared environments. Here,process800 beings by marking or otherwise indicating a top-level domain (hereafter “TLD”) associated with the email in order to prevent modification (i.e., transformation) as described herein (802). After marking or indicating the TLD associated with the email, all other characters associated with the domain name are replaced with unidentifiable characters or numbers (804).
For example, an email address “joe@smith.com” may be transformed by marking the “.com” for non-modification and replacing “joe@smith” with unidentifiable characters such as “xxx@xxxxx”. Thus, when the email address in the example above may be transformed from “joe@smith.com” to xxx@xxxxx.com.” After transforming identified email addresses in the header or body (i.e., payload data) of a retrieved email message, the process then returns to step710 (FIG. 7) to continue processing for generating a processed message (806). In other examples, the above-described process may be varied in the implementation, order, function, or structure of each or all steps and is not limited to those provided.
FIG. 9 illustrates an exemplary computer system suitable for electronic mail processing and publication for shared environments. In some examples,computer system900 may be used to implement computer programs, applications, methods, processes, or other software to perform the above-described techniques.Computer system900 includes abus902 or other communication mechanism for communicating information, which interconnects subsystems and devices, such asprocessor904, system memory906 (e.g., RAM), storage device908 (e.g., ROM), disk drive910 (e.g., magnetic or optical), communication interface912 (e.g., modem or Ethernet card), display914 (e.g., CRT or LCD), input device916 (e.g. keyboard), and cursor control918 (e.g., mouse or trackball).
According to some examples,computer system900 performs specific operations byprocessor904 executing one or more sequences of one or more instructions stored insystem memory906. Such instructions may be read intosystem memory906 from another computer readable medium, such asstatic storage device908 ordisk drive910. In some examples, hard-wired circuitry may be used in place of or in combination with software instructions for implementation.
The term “computer readable medium” refers to any tangible medium that participates in providing instructions toprocessor904 for execution. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media includes, for example, optical or magnetic disks, such asdisk drive910. Volatile media includes dynamic memory, such assystem memory906.
Common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
Instructions may further be transmitted or received using a transmission medium. The term “transmission medium” may include any tangible or intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible medium to facilitate communication of such instructions. Transmission media includes coaxial cables, copper wire, and fiber optics, including wires that comprisebus902 for transmitting a computer data signal.
In some examples, execution of the sequences of instructions may be performed by asingle computer system900. According to some examples, two ormore computer systems900 coupled by communication link920 (e.g., LAN, PSTN, or wireless network) may perform the sequence of instructions in coordination with one another.Computer system900 may transmit and receive messages, data, and instructions, including program, i.e., application code, throughcommunication link920 andcommunication interface912. Received program code may be executed byprocessor904 as it is received, and/or stored indisk drive910, or other non-volatile storage for later execution.
Although the foregoing examples have been described in some detail for purposes of clarity of understanding, the above-described inventive techniques are not limited to the details provided. There are many alternative ways of implementing the above-described invention techniques. The disclosed examples are illustrative and not restrictive.