Companies provide a set of default personalized dynamic email addresses for both individuals and groups. The embodiments may be implemented as an extension to existing email servers, which are coupled to an existing enterprise information system. When receiving an email sent to a personalized dynamic email address, an address resolver component is used to access the definition of the email address, query for the respective recipient(s), and replace the recipient(s) in the email message. Users have the possibility to define further personalized dynamic email addresses using, for example, a web interface. The embodiments may be smoothly integrated into an existing communication infrastructure of companies without the need to change existing systems.
|
1. A computer implemented method for personalized dynamic email addresses, the method comprising:
receiving an email message at an email server, the email message comprising at least one personalized dynamic email address, wherein the at least one personalized dynamic email address comprises an alias;
accessing a definition of the at least one personalized dynamic email address;
determining a query from an alias repository that maps to the alias, wherein the alias repository includes mappings between aliases and queries;
executing the query to dynamically retrieve at least one recipient email address from a data storage according to the definition;
replacing the at least one personalized dynamic email address in the email message with the at least one recipient email address; and
sending the email message via the email server to the at least one recipient email address.
12. An article of manufacture including a non-transitory computer readable storage medium to tangibly store instructions, which when executed by a computer, cause the computer to:
receive an email message at an email server, the email message comprising at least one personalized dynamic email address, wherein the at least one personalized email address comprises an alias;
access a definition of the at least one personalized dynamic email address;
determine a query from an alias repository that maps to the alias, wherein the alias repository includes mappings between aliases and queries;
execute the query to dynamically retrieve at least one recipient email address from a data storage according to the definition;
replace the at least one personalized dynamic email address in the email message with the least one recipient email address; and
send the email message via the email server to the at least one recipient email address.
6. A computer system for personalized dynamic email addresses, comprising:
a processor; and
a memory in communication with the processor, the memory storing instructions related to:
an email server to receive an email message, the email message comprising at least one personalized dynamic email address, wherein the at least one personalized email address comprises an alias;
an address resolver to:
receive the email message from the email server;
determine a query from an alias repository that maps to the alias, wherein the alias repository includes mappings between aliases and queries;
execute the query to dynamically retrieve at least one recipient email address from a data storage according to a definition of the at least one personalized dynamic email address;
replace the at least one personalized dynamic email address in the email message with the at least one recipient email address; and
redirect the email message to the at least one recipient email address via the email server; and
an alias repository to store mappings between aliases and queries.
3. The method of
5. The method of
8. The system of
9. The system of
11. The system of
13. The article of manufacture of
14. The article of manufacture of
15. The article of manufacture of
16. The article of manufacture of
17. The method of
|
Email is an important means for communication within companies. While messages are frequently sent to people who know each other personally, many emails are intended to be received by a person having a specific role in a company. Examples include a direct manager, an HR business partner and a team assistant (who might change on a daily basis if the assistants are working part-time or are on sick leave, for instance). The names of the persons filling these roles are not always known and need to be looked up in some system or by asking other colleagues. Furthermore, the people executing these roles might change frequently and employees might not be informed about this.
Besides messages between two individuals, emails are frequently sent to distribution lists. Distribution lists exist in many companies, for instance, for all people in a certain team, at a certain location, of a certain cost center etc. However, these lists are typically static in nature. They need to be maintained manually, which is error-prone, or they are being generated automatically from data stored in some systems. The latter typically happens on a periodic basis and might therefore not reflect recent changes.
The claims set forth the embodiments with particularity. The embodiments are illustrated by way of examples and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. The embodiments, together with its advantages, may be best understood from the following detailed description taken in conjunction with the accompanying drawings.
Embodiments of techniques for personalized dynamic email addresses in enterprise environments are described herein. In the following description, numerous specific details are set forth to provide a thorough understanding of the embodiments. One skilled in the relevant art will recognize, however, that the embodiments can be practiced without one or more of the specific details, or with other methods, components, materials, etc. In other instances, well-known structures, materials, or operations are not shown or described in detail.
Reference throughout this specification to “one embodiment”, “this embodiment” and similar phrases, means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one of the one or more embodiments. Thus, the appearances of these phrases in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
A personalized dynamic email address is an email address that does not initially define an exact person as a receiver but rather defines a receiver or a group of receivers that are in a specific relation to the sender. One example could be the address “my(manager)@company.corp”, which delivers an email to the current manager of the sender of the email. If an employee wants, for example, to inform the current manager that she or he will stay at home because of sickness, the employee can send an email to the address mentioned, and the system delivers this mail to the correct manager, even if reorganizations are ongoing and the employee does not know the name of her or his current manager. This makes it also unnecessary to look up this information in a corporate address book, if available.
The sender's computer 120 delivers the message to a default email server 130 using proprietary or standard protocols, such as Simple Mail Transfer Protocol (SMTP). The email server 130 then delivers the message to an address resolver 140 using either pull or push mechanisms, because the address resolver 140 has the email address “my@company.corp”. The email server 130 uses proprietary or standard protocols, such as SMTP, to deliver the message to the address resolver 140.
The address resolver 140 resolves the alias “manager” enclosed as a comment in the parentheses from “my(manager)@company.corp”. In one embodiment, the address resolver 140 looks-up a query associated with the alias, executes the query on the enterprise information system 150 and receives the email address of the manager 170, for example “thomas@company.org”. The address resolver 140 redirects the email message by sending the email message to “thomas@company.org” via the email server 130 using proprietary or standard protocols such as SMTP.
The email server 130 proceeds then as with a standard email address and delivers the email message via manager's computer 160 to the manager 170 using proprietary or standard protocols.
The format of the personalized dynamic email addresses may depend on the implementation. In one embodiment, the format may be such as the one presented in relation to
Alternatives to the discussed above format of the personalized dynamic email addresses may exist. In one embodiment, an alias may be defined to include dynamic components. For example, if an internal system needs to send an email notification to the manager of a certain employee, the alias may be defined such as “manager-of-?”, where “?” stands for an email alias of an employee. In such case, an email to “my(manager-of-frank)@company.corp” may be transformed to the email address of the manager of the employee having email address “frank@company.corp”.
Turning back to
Then, at block 230, a data storage is queried to find at least one recipient according to the definition. In one embodiment, the personalized dynamic email addresses may include an alias identifying a query to dynamically retrieve the at least one recipient. The query may be formulated in a standard query language such as Structured Query Language (SQL), and the enterprise information system, such as enterprise information system 150 (
TABLE 1
NAME
ID
EMAIL
MANAGER
STUDENT
LOCATION
SUPERVISOR
Thomas
1000
thomas@company.corp
?
0
DA
?
Frank
1001
frank@company.corp
1000
0
KA
?
Anirban
1002
anirban@company.corp
?
0
KA
?
Nina
1003
nina@company.corp
1002
0
KA
?
Christoph
1004
christoph@company.corp
1002
0
KA
?
Tom
1005
tom@company.corp
1002
0
KA
?
Dennis
1006
dennis@company.corp
?
1
KA
1001
Table 1 shows an exemplary data table within an enterprise information system (EIS), such as enterprise information system 150 (
At block 240, the personalized dynamic email addresses are replaced in the email message with at least one recipient's email address.
At block 250, the email message is sent via the email server to the at least one recipient's email address.
In one embodiment, the email server uses standard protocols for communication. In other embodiments, the email server uses proprietary protocols for communication, specific for the organization implementing the personalized dynamic email addresses.
Typically, a sender does not know to whom an email message is delivered if sent to a personalized dynamic email address. This may be necessary as senders may need to know whom to contact for a follow-up or to document to which person an email message has been delivered. In one embodiment, confirmation to a sender of a delivery of an email message with a personalized dynamic email addresses is implemented. In one embodiment, the address resolver might be configured to include the sender of an email message in the “CC” or “BCC” field of an email message, which is redirected. In another embodiment, the address resolver might be configured to send a delivery report to the sender of an email message. In yet another embodiment, delivered email messages (or their metadata) may be logged, and the history may be made available via an application server to senders of email messages.
TABLE 2
ALIAS
CREATOR
QUERY
manager
SELECT t2.EMAIL FROM EMPLOYEES t1, EMPLOYEES t2
WHERE t1.EMAIL=‘<SENDER>’ AND t1.MANAGER=t2.ID;
teamcolleagues
SELECT t2.EMAIL FROM EMPLOYEES t1, EMPLOYEES t2
WHERE t1.EMAIL=‘<SENDER>’ AND t2.MANAGER=t1.MANAGER
AND t1.EMAIL< >t2.EMAIL AND t2.STUDENT=0;
students
SELECT t2.EMAIL FROM EMPLOYEES t1, EMPLOYEES t2
WHERE t1.EMAIL=‘<SENDER>’ AND t2.SUPERVISOR=t1.ID;
location
SELECT t2.EMAIL FROM EMPLOYEES t1, EMPLOYEES t2
WHERE t1.EMAIL=‘<SENDER>’ AND t2.LOCATION=t1.LOCATION
AND t1.EMAIL< >t2.EMAIL;
managerlocation
1001
SELECT t3.EMAIL FROM EMPLOYEES t1, EMPLOYEES t2, EMPLOYEES t3
WHERE t1.ID=‘1001’ AND t1.MANAGER=t2.ID
AND t2.LOCATION=t3.LOCATION;
The column “ALIAS” contains email alias of a personalized dynamic email address. For example, alias “manager” may refer to the manager of the sender of an email; alias “teamcolleagues” may refer to all direct colleagues of the sender of an email, i.e. all people having the same manager, which are not students; alias “students” may refer to all students that have the sender of the email as a supervisor; alias “location” may refer to all employees at the same location as the sender of the email; and alias “managerlocation” may refer to all employees at the same location as the manager of the employee with ID 1001 (from the column “CREATOR”). The column “CREATOR” indicates which employee has created an individual personalized mapping, if empty, the mapping may be public. The column “QUERY” contains the query corresponding to the alias. Within the query, angle brackets may refer to fields from the email to be processed, for example, “<SENDER>” stands for the sender of an email. All these queries assume the existence of a table “EMPLOYEES” in the enterprise information system such as Table 1.
When executing the queries presented in Table 2 on the data in the Table 1, the results may be:
frank@company.corp sends an email to my(manager)@company.corp
nina@company.corp sends an email to my(teamcolleagues)@company.corp
frank@company.corp sends an email to my(students)@company.corp
tom@company.corp sends an email to my(location)@company.corp
frank@company.corp sends an email to my(managerlocation)@company.corp
An address resolver 350 gets the query from the alias repository 340 and executes it on an enterprise information system 360. An application server 330 within the management system 320 for personalized dynamic email addresses in enterprise environments provides an application, for example a web application (not shown), which allows adding, deleting, executing, and changing entries in the alias repository 340. Such an application may be used by a company administrator 310 to maintain personalized dynamic email addresses to be used by employees. In one embodiment, employees may also maintain further individual personalized email addresses using such an application provided by the application server 330. The application may handle pure SQL queries or may provide some visual means or wizard to maintain the queries. Because the application server 330 may also execute queries, this functionality may be used for testing purposes or to browse potential recipients of an email to confirm that a certain alias is correct.
The described embodiments may utilize alternative email address formats for personalized dynamic email addresses. The format “my(manager)@company.corp”, described above, which has an alias “manager” in a comment included in parentheses, is advantageous, because standard mail clients may be used without modifications. However RFC 5322 indeed recommends not using comments in address fields, because some legacy implementations may remove comments. Because the current embodiments are meant to be implemented within companies, an environment without such legacy systems may be expected. Some current email programs do not treat comments correctly. Therefore the following two alternatives may be implemented. Instead of using comments in email addresses, for example, “my(manager)@company.corp”, the name field as defined in RFC 5322 may be used alternatively: “manager <my@company.corp>”. The address “my@company.corp” may be the address from the address resolver component, which then uses the name (instead of a comment) as the alias to resolve the final recipient(s) of the email. This variation may also be used without the need to change any existing email clients or servers within a company.
Instead of comments or the name field (as proposed in the previous paragraph), the usage of different identifiers in email address may be used, with slight modifications of the affected systems. An example may be an email address like “!manger@company.corp”, where the exclamation mark identifies that the text enclosed by “!” and “@” is an alias, which needs to be treated by the address resolver component. “!” may be any valid character which is normally not used in company email addresses. However, this or similar embodiments require slight changes in the mail servers as all such addresses need to be forwarded to the address resolver component.
Different companies and different users may have different preferences how details of the current embodiments may be implemented. Therefore, variations may be realized with and may be configured for a whole organization or individually by the users (employees). One aspect which may be configured differently according to the specificities of the organizations is a feature if a recipient of an email should know that a mail was sent via a dynamic email address or not. The address resolver could keep the original “To” field of the message header (e.g., “my(manager)@company.corp”) and redirect the mail to another address (e.g., “thomas@company.corp”), or the address resolver could just change the “To” field of the email (e.g., from “my(manager)@company.corp” to “thomas@company.corp”). The first alternative gives the recipient of the email the knowledge that a dynamic email address was used and the recipient may better understand why the salutation in the email may not be personalized. In other configurations, other means may be used to indicate that an email is delivered using a personalized dynamic email address. This includes prefixes in the message subject or textual notifications in the email body (for example: “This message was originally sent to my(manager)@company.corp.”).
In one embodiment, the alias translation may be done prior to sending the email message, within the email client of the sender. Such alternative may be used in addition or as an exclusive embodiment. By using a plug-in for a client program, a sender may translate a dynamic email address to a real address on her or his computer. This allows the usage of personalized salutations within the email body and provides control to which recipient(s) an email will be delivered. In this embodiment, the plug-in in the email client program on the sender's computer may directly access the address resolver component via a dedicated interface, for example, a Web Service or a Representational State Transfer (REST) interface, and may translate a dynamic email address, such as “my(manager)@company.corp”, to a real email address (e.g., “thomas@company.corp”).
Some embodiments may include the above-described methods being written as one or more software components. These components, and the functionality associated with each, may be used by client, server, distributed, or peer computer systems. These components may be written in a computer language corresponding to one or more programming languages such as, functional, declarative, procedural, object-oriented, lower level languages and the like. They may be linked to other components via various application programming interfaces and then compiled into one complete application for a server or a client. Alternatively, the components may be implemented in server and client applications. Further, these components may be linked together via various distributed programming protocols. Some example embodiments may include remote procedure calls being used to implement one or more of these components across a distributed programming environment. For example, a logic level may reside on a first computer system that is located remotely from a second computer system containing an interface level (e.g., a graphical user interface). These first and second computer systems can be configured in a server-client, peer-to-peer, or some other configuration. The clients can vary in complexity from mobile and handheld devices, to thin clients and on to thick clients or even other servers.
The above-illustrated software components are tangibly stored on a computer readable storage medium as instructions. The term “computer readable storage medium” should be taken to include a single medium or multiple media that stores one or more sets of instructions. The term “computer readable storage medium” should be taken to include any physical article that is capable of undergoing a set of physical changes to physically store, encode, or otherwise carry a set of instructions for execution by a computer system which causes the computer system to perform any of the methods or process steps described, represented, or illustrated herein. A computer readable storage medium may be a non-transitory computer readable storage medium. Examples of non-transitory computer readable storage media include, but are not limited to: magnetic media, such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs, DVDs and holographic devices; magneto-optical media: and hardware devices that are specially configured to store and execute, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer readable instructions include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment may be implemented using Java, C++, or other object-oriented programming language and development tools. Another embodiment may be implemented in hard-wired circuitry in place of, or in combination with machine readable software instructions.
A data source is an information resource. Data sources include sources of data that enable data storage and retrieval. Data sources may include databases, such as, relational, transactional, hierarchical, multi-dimensional (e.g., OLAP), object oriented databases, and the like. Further data sources include tabular data (e.g., spreadsheets, delimited text files), data tagged with a markup language (e.g., XML data), transactional data, unstructured data (e.g., text files, screen scrapings), hierarchical data (e.g. data in a file system, XML data), files, a plurality of reports, and any other data source accessible through an established protocol, such as, Open DataBase Connectivity (ODBC), produced by an underlying software system (e.g., ERP system), and the like. Data sources may also include a data source where the data is not tangibly stored or otherwise ephemeral such as data streams, broadcast data, and the like. These data sources can include associated data foundations, semantic layers, management systems, security systems and so on.
In the above description, numerous specific details are set forth to provide a thorough understanding of embodiments. One skilled in the relevant art will recognize, however that the embodiments can be practiced without one or more of the specific details or with other methods, components, techniques, etc. In other instances, well-known operations or structures are not shown or described in details.
Although the processes illustrated and described herein include series of steps, it will be appreciated that the different embodiments are not limited by the illustrated ordering of steps, as some steps may occur in different orders, some concurrently with other steps apart from that shown and described herein. In addition, not all illustrated steps may be required to implement a methodology in accordance with the one or more embodiments. Moreover, it will be appreciated that the processes may be implemented in association with the apparatus and systems illustrated and described herein as well as in association with other systems not illustrated.
The above descriptions and illustrations of embodiments, including what is described in the Abstract, is not intended to be exhaustive or to limit the one or more embodiments to the precise forms disclosed. While specific embodiments of, and examples for, the invention are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. These modifications can be made in light of the above detailed description. Rather, the scope is to be determined by the following claims, which are to be interpreted in accordance with established doctrines of claim construction.
Eichinger, Frank, Oertel, Nina, Eichhorn, Christoph, Kiemes, Tom
Patent | Priority | Assignee | Title |
10715475, | Aug 28 2018 | Enveloperty LLC | Dynamic electronic mail addressing |
11055299, | Jul 30 2019 | SAP SE | Supporting reportability of internet of things (IoT) data in the cloud for enterprise contexts |
11361107, | May 01 2019 | Rally AG LLC | Privacy friendly communication by operation of cloaked/decloaked email |
11816089, | Jul 30 2019 | SAP SE | Supporting reportability of Internet of Things (IoT) data in the cloud for enterprise contexts |
Patent | Priority | Assignee | Title |
7395316, | Jul 16 2003 | SAP SE | Establishing dynamic communication group by searching implicit information that is obtained through inference |
7539502, | May 28 2004 | SYBASE 365, INC | System and method for intelligent dynamic message addressing |
7783741, | Nov 17 2003 | CALLAHAN CELLULAR L L C | Pseudonymous email address manager |
8055716, | Oct 19 2006 | International Business Machines Corporation | Dynamic creation of mail aliases usable in electronic communications |
8166112, | Feb 02 2006 | SAP SE | Virtual mail storage for mail distributed using corporate distribution lists |
8200770, | Jul 16 2003 | SAP SE | Information exchange tool |
8204943, | Jul 09 2007 | SAP SE | Large distribution message handling |
20020087641, | |||
20020152272, | |||
20030046353, | |||
20050204011, | |||
20050210107, | |||
20090049022, | |||
20090157828, | |||
20090282110, | |||
20140280261, | |||
20140373106, | |||
20140380460, | |||
EP2386989, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Sep 06 2013 | EICHINGER, FRANK | SAP AG | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032134 | /0204 | |
Sep 06 2013 | EICHHORN, CHRISTOPH | SAP AG | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032134 | /0204 | |
Sep 06 2013 | OERTEL, NINA | SAP AG | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032134 | /0204 | |
Sep 06 2013 | KIEMES, TOM | SAP AG | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032134 | /0204 | |
Sep 11 2013 | SAP SE | (assignment on the face of the patent) | / | |||
Jul 07 2014 | SAP AG | SAP SE | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 033625 | /0223 |
Date | Maintenance Fee Events |
Oct 13 2016 | ASPN: Payor Number Assigned. |
Aug 15 2019 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Aug 16 2023 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Feb 23 2019 | 4 years fee payment window open |
Aug 23 2019 | 6 months grace period start (w surcharge) |
Feb 23 2020 | patent expiry (for year 4) |
Feb 23 2022 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 23 2023 | 8 years fee payment window open |
Aug 23 2023 | 6 months grace period start (w surcharge) |
Feb 23 2024 | patent expiry (for year 8) |
Feb 23 2026 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 23 2027 | 12 years fee payment window open |
Aug 23 2027 | 6 months grace period start (w surcharge) |
Feb 23 2028 | patent expiry (for year 12) |
Feb 23 2030 | 2 years to revive unintentionally abandoned end. (for year 12) |