U.S. patent application number 13/191412 was filed with the patent office on 2013-01-31 for electronic mail processing and publication for shared environments.
This patent application is currently assigned to Socialmail LLC. The applicant listed for this patent is Yogesh Gowdra, James Ioannidis, Ankesh Kumar. Invention is credited to Yogesh Gowdra, James Ioannidis, Ankesh Kumar.
Application Number | 20130031183 13/191412 |
Document ID | / |
Family ID | 47598175 |
Filed Date | 2013-01-31 |
United States Patent
Application |
20130031183 |
Kind Code |
A1 |
Kumar; Ankesh ; et
al. |
January 31, 2013 |
ELECTRONIC MAIL PROCESSING AND PUBLICATION FOR SHARED
ENVIRONMENTS
Abstract
Techniques for electronic mail processing and publication for
shared environments are described, including evaluating a data
packet indicating receipt of an electronic message at a shared
destination, retrieving the electronic message from the shared
destination, processing the electronic message to generate a
processed message configured to be posted to a shared environment,
and posting the processed message to the shared environment.
Inventors: |
Kumar; Ankesh; (Palo Alto,
CA) ; Gowdra; Yogesh; (Sunnyvale, CA) ;
Ioannidis; James; (San Francisco, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Kumar; Ankesh
Gowdra; Yogesh
Ioannidis; James |
Palo Alto
Sunnyvale
San Francisco |
CA
CA
CA |
US
US
US |
|
|
Assignee: |
Socialmail LLC
Palo Alto
CA
|
Family ID: |
47598175 |
Appl. No.: |
13/191412 |
Filed: |
July 26, 2011 |
Current U.S.
Class: |
709/206 |
Current CPC
Class: |
H04L 67/02 20130101;
G06F 2203/04803 20130101; G06Q 30/0251 20130101; H04L 51/32
20130101; H04L 67/22 20130101; H04L 51/04 20130101; G06F 3/0482
20130101; G06F 40/221 20200101; H04L 65/403 20130101; H04L 67/26
20130101; H04L 51/06 20130101; H04L 51/22 20130101 |
Class at
Publication: |
709/206 |
International
Class: |
G06F 15/16 20060101
G06F015/16 |
Claims
1. A method, comprising: evaluating a data packet indicating
receipt of an electronic message at a shared destination;
retrieving the electronic message from the shared destination;
processing the electronic message to generate a processed message
configured to be posted to a shared environment; and posting the
processed message to the shared environment.
2. The method of claim 1, wherein the shared destination is a
website.
3. The method of claim 1, wherein the electronic message is
retrieved from the shared destination using one or more
protocols.
4. The method of claim 3, wherein at least one of the one or more
protocols is SMTP.
5. The method of claim 3, wherein at least one of the one or more
protocols is POP.
6. The method of claim 1, wherein processing the electronic message
further comprises determining whether an address is present within
a header of the electronic message.
7. The method of claim 1, wherein processing the electronic message
further comprises determining whether an address is present within
a body of the electronic message.
8. The method of claim 1, wherein processing the electronic message
further comprises transforming an address if the address is
identified within a header or body of the electronic message.
9. The method of claim 1, wherein processing the electronic message
further comprises evaluating the electronic message to identify a
security threat, the electronic message being evaluated if a format
of the electronic message is based on HTML.
10. A system, comprising: a database configured to store data
associated with an electronic message and a shared environment; and
a logic module configured to evaluate a data packet indicating
receipt of the electronic message at a shared destination, to
retrieving the electronic message from the shared destination, to
process the electronic message to generate a processed message
configured to be posted to the shared environment, and to post the
processed message to the shared environment.
11. The system of claim 10, further comprising a security module
configured to evaluate the data packet and the electronic message
to identify a security threat.
12. The system of claim 10, wherein the logic module is configured
to determine if an address is included in the electronic
message.
13. The system of claim 10, wherein the logic module is configured
to determine if an address is included in the electronic message
and to transform the address after retrieving the electronic
message from the shared destination.
14. The system of 13, wherein the address is transformed by
replacing at least a portion of the address.
15. The system of claim 10, wherein the shared destination is an
electronic mail account.
16. The system of claim 10, wherein the database is configured to
store the data and the electronic message after being retrieved by
a retrieval module from the shared destination.
17. The system of claim 10, wherein the database is configured to
store other data associated with processing performed by the logic
module after being retrieved from the shared destination.
18. A computer program product embodied in a computer readable
medium and comprising computer instructions for: evaluating a data
packet indicating receipt of an electronic message at a shared
destination; retrieving the electronic message from the shared
destination; processing the electronic message to generate a
processed message configured to be posted to a shared environment;
and posting the processed message to the shared environment.
Description
FIELD
[0001] The 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.
BACKGROUND
[0002] Electronic 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.
[0003] 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.
[0004] 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.
[0005] 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 DRAWINGS
[0006] Various embodiments or examples ("examples") are disclosed
in the following detailed description and the accompanying
drawings:
[0007] FIG. 1 illustrates an exemplary system for electronic mail
processing and publication for shared environments;
[0008] FIG. 2 an exemplary application architecture for electronic
mail processing and publication for shared environments;
[0009] FIG. 3 illustrates an exemplary shared environment for
publication of processed electronic mail messages;
[0010] FIG. 4A illustrates a further exemplary shared environment
for publication of processed electronic mail messages;
[0011] FIG. 4B illustrates an alternative exemplary shared
environment for publication of processed electronic mail
messages;
[0012] FIG. 5 illustrates another exemplary shared environment for
publication of processed electronic mail messages;
[0013] FIG. 6A illustrates an exemplary process for electronic mail
processing and publication for shared environments;
[0014] FIG. 6B illustrates an alternative exemplary process for
electronic mail processing and publication for shared
environments;
[0015] FIG. 7 illustrates a further exemplary process for
electronic mail processing and publication for shared
environments;
[0016] FIG. 8 illustrates an exemplary process for transforming
email addresses for electronic mail processing and publication for
shared environments; and
[0017] FIG. 9 illustrates an exemplary computer system suitable for
electronic mail processing and publication for shared
environments.
DETAILED DESCRIPTION
[0018] Various 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.
[0019] 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.
[0020] 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.RTM. Integrated Runtime.TM.
(Adobe.RTM. AIRT.TM.), ActionScript.TM., FIex.TM., Lingo.TM.,
Java.TM., Javascript.TM., 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.RTM., Shockwave.RTM., Flash.RTM., Drupal and
Fireworks.RTM. 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.
[0021] FIG. 1 illustrates an exemplary system for electronic mail
processing and publication for shared environments. Here, system
100 includes network 102, clients 104-110, server 112, databases
114-116, and website 118. "Elements" may refer to one or more of
network 102, clients 104-110, server 112, databases 114-116, and
website 118 shown in association with system 100. 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, network
102 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, clients 104-110 may be
implemented as a desktop computer (e.g. client 104), mobile
communication (i.e., voice and data) device (e.g., client 106),
mobile computing device (e.g., client 108), or notebook or laptop
(i.e. portable) computing device (client 110). Each of clients
104-110 may be in data communication with server 112 using network
102. In some examples, server 112 may be a web, application, email,
or other type of server, without limitation.
[0022] Databases 114-116, in some examples, may be directly or
indirectly in data communication with server 112, which may be
implemented as described above to perform one or more applications,
deliver services or resources to clients 104-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
databases 114-116. In other examples, data may also be stored in
embedded memory, of any type, with server 112 or any of clients
104-110. Still further, data may be stored and retrieved by server
112 or any of clients 104-110 from any of databases 114-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., server 112), 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
server 112. 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 server 112 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 server 112, emails may be stored in database 114
and/or 116 and processed further to generated processed messages
for posting to a shared environment (e.g., website 118). 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."
[0023] A shared destination may be, in some examples, an email
account hosted on server 112 that is configured to receive emails
sent from various sources and intended for posting to a given
website (e.g., website 118). Data associated with emails sent to a
shared destination may be stored in database 114 or, in other
examples, remotely stored in database 116.
[0024] As shown here, website 118 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. website 118, among others). In some examples, website 118 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, system 100 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.
[0025] FIG. 2 an exemplary application architecture for electronic
mail processing and publication for shared environments. Here,
application 200 includes bus 202, logic module 204, database 206,
retrieval module 208, XML engine 210, email processing engine 212,
security module 214, and posting module 216. In some examples, bus
202 may be implemented as any type of data communication bus for
transferring data between any of logic module 204, database 206,
retrieval module 208. XML engine 210, email processing engine 212,
security module 214, and posting module 216, without limitation to
any given type, configuration, capacity, rating, or other
characteristic. As shown, application 200 and the elements
described herein (i.e., logic module 204, database 206, retrieval
module 208, XML engine 210, email processing engine 212, security
module 214, and posting module 216) 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.
[0026] In some examples, logic module 204 may be configured to
provide command and/or control signals, instructions, and functions
to direct one or more of database 206, retrieval module 208, XML
engine 210, email processing engine 212, security module 214, and
posting module 216. Logic module 204, for example, may direct
retrieval module 208 to identify, locate, and retrieve emails sent
to a shared destination (e.g., IMAP or POP email account). Logic
module 204 may also be configured to process retrieved emails to
generate processed messages (i.e., retrieved emails that have been
processed by email processing engine 212) for posting or
publication in a shared environment (e.g., website 118 (FIG. 1))
prior to being directed to posting module 216 for posting to the
shared environment (e.g., website 118). Further, logic module 204
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 module 214
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 by email
processing engine 212 is a security threat that, once posted to a
shared environment (e.g., website 118) may be accessible and pose a
security risk to other clients.
[0027] As shown, data may be stored in database 206 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
engine 210 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, in database 206 or, as another example, to be
processed for posting to a shared environment (e.g., website 118)
by email processing engine 212 and posting module 216. In other
examples, application 200 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,
application 200 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.
[0028] FIG. 3 illustrates an exemplary shared environment for
publication of processed electronic mail messages. Here, window 300
includes shared environment 302, title tag 304, process messages
306, sitemap link 308, sort window 310, pulldown menu 312, and
search field 314. In some examples, window 300 may be
representative of a graphical user interface display that is
presented by website 118 (FIG. 1). As shown, shared environment 302
may be a graphical display environment in which processed messages
may be displayed and reviewed. Based on title tag 304, 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 tag 304 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 tag 305 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 processed
messages 306. By using modifying the header tags of retrieved
emails, processed messages 306 can be improved for SEO,
facilitating searches performed for various topics, themes,
keywords, or emails.
[0029] 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 processed messages 306 may be sorted based on
criteria specified in sort window 310 by using pulldown menu 312.
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 processed messages 306. When
selected, a criterion may cause processed shared environment 302 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 a service providing window 300, 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, processed
messages 306 may be sorted or displayed differently and are not
limited to those shown and described.
[0030] Here, processed messages 306 may also be searched using a
facility that has an interface such as search field 314 to permit
the entry of keywords or other items that may be used to select the
appearance of processed messages 306. A search of processed
messages 306 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 shared environment 302. 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 with
FIG. 5. In some examples, each of processed messages 306 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 with FIGS. 4A-4B.
[0031] Referring back to FIG. 3, shared environment 302 can be
provided as a destination website (e.g. website 118) 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 shared
environment 302 to permit other users to enter comments or submit
other emails related to a given topic or original email (i.e.,
threading), as indicated by title topic 304. Each email submitted
may be processed by email processing engine 212 (FIG. 2) to be
generated into a processed message and posted as part of a
thread.
[0032] 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 module 214 (FIG. 2) may be
configured to provide additional security to permit authenticated
use by members of a given organization as opposed to enabling
shared environment 302 to be publicly accessible. Generally, shared
environment 302 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 databases 114-116 may forward or send
emails to a service hosted by server 112, which may be processed by
email processing engine 212 (as described in greater detail below
in connection with FIG. 5) and posted to shared environment 302.
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 shared environment 302.
[0033] Additionally, sitemap link 308 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 website 118) to another page of website 118 to
retrieve and view information associated with posts (i.e.
publications) of processed messages to shared environment 302. In
some examples, by interacting with sitemap link 308, 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.
[0034] FIG. 4A illustrates a further exemplary shared environment
for publication of processed electronic mail messages. Here, window
400 includes shared environment 402, title tag 404, processed
messages 406, attachment icon 408, and threaded messages 410. As
shown, if a hyperlink associated with one of processed messages 306
(FIG. 3) is invoked another web page may be rendered similarly to
that presented in window 400. In some examples, a processed message
and related processed messages may be presented in shared
environment 402. A selected processed message may be indicated by
title tag 404 and subsequent processed messages submitted in
response or in relation to title tag 404 may be presented as a
thread, as shown by processed messages 406. Further, one or more of
processed messages 406 may have an attachment (i.e., an attached
file, document, image, or other data or information), which may be
indicated using, for example, attachment icon 408. 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 icon 408 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 icon 408. Still further, other emails may
be submitted for generation of additional processed messages as
extended threads, as shown by threaded messages 410.
[0035] As shown, each of processed messages 406 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 with FIG. 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 shared environment 402. In still other
examples, window and shared environment 402 may be implemented
differently in layout, design, function, structure, features, or
other aspects and are not limited to those shown and provided.
[0036] FIG. 4B illustrates an alternative exemplary shared
environment for publication of processed electronic mail messages.
Here, window 400 includes shared environment 402, sections 420-430,
data 432-434, and button 436. In some examples, window 400 may be
implemented as a graphical user interface such as that associated
with a web browser or other web browsing application. As shown
window 400 may be configured to present a page that displays
several different functions or structures. For example, section 420
may be implemented to present the number of votes associated with a
given email that is submitted and posted, as indicated by data 432
(e.g., "Subject of email," which may be identified from a processed
email), data 434 (e.g., "time of post," which may also be posted
from a processed email), section 422 (e.g., the body of the email,
section 426 (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.
[0037] Further, any email that is posted in window 400 may also
include information associated with the number of votes received by
other users (e.g., section 420), comments from one or more other
users, which may also include replies to comments from the posting
email sender (e.g., section 424), people indicating their "like"
(or in some examples, dislike (not shown)) of the posted email
(e.g., section 428), 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., section 430). 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 as
button 436 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 window 400)
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 module 216 (FIG. 2). Referring back to FIG. 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.
[0038] 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.
[0039] 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 shared environment 402 may be implemented differently in
layout, design, function, structure, features, or other aspects and
are not limited to those shown and provided.
[0040] FIG. 5 illustrates another exemplary shared environment for
publication of processed electronic mail messages. Here, window 500
includes shared environment 502, title tag 504, processed message
content 506, comment function 508, share function 510, flag
function 512, like function 514, do not like function 516, and
plug-in function 518. In some examples, the quantity, type,
function, structure, or other aspects of window 500 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 processed messages 406 is
selected, a web browsing application or other type of client
interface may be opened in window 500, displaying processed message
content 506 and indicating it is related to the selected processed
message by title tag 504
[0041] Further, shared environment 502 may be designed and
implemented to provide one or more functions that may be used in
connection with processed message content 506. For example, a
comment may be entered in association with processed message
content 506 by interacting with comment function 508, which may be
implemented as a button or link. When selected, comment function
508 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 function 510 may be used
to share processed message content 506 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,
processed message content 506 may also be "flagged" or indicated as
being inappropriate, undesirable, copied, or otherwise by invoking
flag function 512. Other functions that may be invoked include like
function 514 and do not like function 516.
[0042] In some examples, if a user "likes" or wishes to publicly
indicate her favor for processed message content 506, she may place
a tag or mark to indicate such by invoking like function 514.
Likewise, she may also invoke do not like function 516 to indicate
that processed message content 506 is undesirable to her. By
invoking popularity-related functions such as these, ranking of
published message content 506 may be performed. As yet another
function, plug-in function 518 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-in function 518, processed message content 506 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,
window 500 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.
[0043] FIG. 6A illustrates an exemplary process for electronic mail
processing and publication for shared environments. Here, process
600 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
with FIGS. 3-5 (606). Once processed, a processed message is posted
to a shared environment such as website 118 (FIG. 1) (608).
[0044] 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.
[0045] FIG. 6B illustrates an alternative exemplary process for
electronic mail processing and publication for shared environments.
Here, process 610 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.,
database 206 (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 process 610 does not perform a security check.
[0046] 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.
[0047] FIG. 7 illustrates a further exemplary process for
electronic mail processing and publication for shared environments.
As an exemplary illustration of generating processed messages,
process 700 may be implemented. Here, process 700 starts by storing
a copy of a retrieved email and recording the email address of the
sending account or client (702). After storing in database 114
and/or 116 (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 with FIG. 8 (708).
[0048] Referring back to FIG. 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 in database 114 and/or 116
(718). In other examples, an alert message or other warning may be
sent to the user of system 100 (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., website 118 or shared environments 302 (FIG. 3),
402 (FIG. 4), or 502 (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.
[0049] FIG. 8 illustrates an exemplary process for transforming
email addresses for electronic mail processing and publication for
shared environments. Here, process 800 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).
[0050] 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 step 710 (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.
[0051] FIG. 9 illustrates an exemplary computer system suitable for
electronic mail processing and publication for shared environments.
In some examples, computer system 900 may be used to implement
computer programs, applications, methods, processes, or other
software to perform the above-described techniques. Computer system
900 includes a bus 902 or other communication mechanism for
communicating information, which interconnects subsystems and
devices, such as processor 904, system memory 906 (e.g., RAM),
storage device 908 (e.g., ROM), disk drive 910 (e.g., magnetic or
optical), communication interface 912 (e.g., modem or Ethernet
card), display 914 (e.g., CRT or LCD), input device 916 (e.g.
keyboard), and cursor control 918 (e.g., mouse or trackball).
[0052] According to some examples, computer system 900 performs
specific operations by processor 904 executing one or more
sequences of one or more instructions stored in system memory 906.
Such instructions may be read into system memory 906 from another
computer readable medium, such as static storage device 908 or disk
drive 910. In some examples, hard-wired circuitry may be used in
place of or in combination with software instructions for
implementation.
[0053] The term "computer readable medium" refers to any tangible
medium that participates in providing instructions to processor 904
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 as
disk drive 910. Volatile media includes dynamic memory, such as
system memory 906.
[0054] 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.
[0055] 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 comprise bus 902 for transmitting a computer
data signal.
[0056] In some examples, execution of the sequences of instructions
may be performed by a single computer system 900. According to some
examples, two or more computer systems 900 coupled by communication
link 920 (e.g., LAN, PSTN, or wireless network) may perform the
sequence of instructions in coordination with one another. Computer
system 900 may transmit and receive messages, data, and
instructions, including program, i.e., application code, through
communication link 920 and communication interface 912. Received
program code may be executed by processor 904 as it is received,
and/or stored in disk drive 910, or other non-volatile storage for
later execution.
[0057] 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.
* * * * *