The present invention is related to the field of data communications networks, and more particularly, to techniques for exchanging data over a data communications network.
Electronic mail (e-mail) is an asynchronous communication medium that allows users to exchange messages, with or without attachments, over a data communications network, such as the Internet. E-mail thus provides an efficient mechanism for the rapid, convenient, and inexpensive exchange of messages and other data.
An important aspect of e-mail, in contrast to ordinary postal mail, is that with e-mail a user can send many copies of a message to multiple recipients at a time. Nevertheless, sending an e-mail message to members of a group remains a challenge when the group membership changes frequently.
A list of members can be maintained on a list server at a central location so that sending an e-mail to the server will ensure that the e-mail is sent to designated group members. This conventional approach, however, requires that a list be maintained, notwithstanding the fact that it will often be the case that user-specified groups on the list are not going to be included. Directories, such as the Lightweight Directory Access Protocol (LDAP), impose the same types of limitations when there is a need for a list to be maintained at an external location. Examples of lists that would not be handled effectively and efficiently by conventional mechanisms include, work department members, social networking groups, contributors to a particular blog, and individuals who have indicated an interest in a particular webpage, for example.
The present invention is directed to a system, methods, and computer product for creating customized, dynamic e-mail distribution lists. With certain embodiments of the invention, an e-mail list is created at the moment in time that the list is being used in sending an e-mail over a data communications network. Rules for creating e-mail lists, according to an embodiment of the invention, can vary with respect to different lists, according to user-supplied specifications.
One embodiment of the invention is a system for generating a customized dynamic distribution e-mail list. The system can include one or more processors. The system also can include a network interface for communicatively linking the one or more processors to a data communications network. Additionally, the system can include an addressee-selecting module that executes on the one or more processors. The module, more particularly, can be configured to respond to a user-executed command to send an e-mail over the data communications network by determining a predefined addressee-selecting rule. Based upon the addressee-selecting rule, the module can select at least one addressee from one or more electronic data files. For each addressee selected, the module can insert a corresponding address into a predetermined field of an e-mail prior to conveying the e-mail over a data communications network.
Another embodiment is a computer-implemented method for generating a customized dynamic distribution e-mail list. The method can include responding to a user-executed command to send an e-mail by determining a predefined addressee-selecting rule. The method also can include selecting at least one addressee from an electronic data file based upon the addressee-selecting rule. The method further can include, for each addressee selected, inserting a corresponding address into a predetermined field of an e-mail prior to conveying the e-mail over a data communications network.
Yet another embodiment of the invention is a computer-readable medium in which is embedded computer-readable code that when loaded on a computer causes the computer to perform the following procedure: determine a predefined addressee-selecting rule in response to a user-executed command to send an e-mail; based upon the addressee-selecting rule, select at least one addressee from an electronic data file; and, for each addressee selected, insert a corresponding address into a predetermined field of an e-mail prior to conveying the e-mail over a data communications network.
There are shown in the drawings, embodiments which are presently preferred. It is expressly noted, however, that the invention is not limited to the precise arrangements and instrumentalities shown in the drawings.
The user agents 104a-f can be any computing device that has the capability to communicatively link, whether wirelessly or through a wired connection, directly or through a network to other agents and to exchange e-mails. The user agents 104a-f can execute an application-layer program that, based upon a protocol such as Simple Mail Transfer Protocol (SMTP), permits users to read, reply to, forward, compose, and save, e-mails.
Referring additionally to
In a particular embodiment, the one or more processors 202 and/or network interface 204 of the system 200 can be provided by a mail server 102c on which the system 200 operates. In alternative embodiments, however, the one or more processors 202 and and/or network interface 204 can comprise a stand-alone device or can be part of an independent computing device (not shown) that communicatively links to a mail server.
Certain operative features of the system 200 are provided by an addressee-selecting module 208. Preferably, the addressee-selecting module 208 is implemented in processor-executable code configured to execute on the one or more processors 202. In alternative embodiments, however, the addressee-selecting module 208 can be implemented in dedicated hardwired circuitry. In still other embodiments, the addressee-selecting module 208 can be implemented in a combination of processor-executable code and hardwired circuitry.
Operatively, the addressee-selecting module 208 is configured to respond to a user-executed command to send an e-mail over a data communications network. In response to the user-executed command, the addressee-selecting module 208 determines a predefined addressee-selecting rule. Based upon the addressee-selecting rule, the addressee-selecting module 208 selects one or more addressees from an electronic data file, the data file being stored in memory locally or remotely from the system 200. The addressee-selecting module 208, for each addressee selected, then inserts a corresponding address into a predetermined field of an e-mail prior to conveying the e-mail over a data communications network.
The following exemplary procedure, represented in pseudocode, illustrates an embodiment of the address-selecting module 208 implemented in processor-executable code:
The addressee-selecting module 208 can be configured to identify the electronic data file from among a plurality of different data files, the identification being based upon the addressee-selecting rule. In response thereto, the addressee-selecting module 208 can access the electronic data file. For example, for a list name titled “ABC Department Members” a corresponding rule of address creation can direct the device on which the system 200 operates to perform certain operations. Specifically, the rule can dictate that the following procedure be performed: go to company directory web page; log in; open page for department ABC manager; follow link to “People Managed;” and generate list of e-mail addresses from the collection of e-mail addresses in that division of the html source. In another example, the rule can correspond to a list name titled “All administrators at my child's school.” The corresponding rule can dictate the following procedure: go to the school website, access “Staff,” and collect e-mail addresses.
In another embodiment, the addressee-selecting module 208 can be configured to access the electronic data file at a remotely-located site and automatically perform a log-in procedure to access the electronic data file based upon the addressee-selecting rule. For example, a rule corresponding to a list name titled “My Soccer Pals,” can instantiate a-procedure according to which the user is initially directed to a soccer team's group Website, such as yahoogroup™, to collect addresses of team members and then to a social-planning Website for creating, sending, and/or managing online invitations, such as Evite.com™. A complete procedure dictated by the rule can be illustratively described as follows: go to yahoogroup for soccer team and collect addresses; go to Evite.com; log in; open soccer invitation and collect addresses; go to soccer club website and collect addresses. In another example, for a list name titled “People to Invite to Christmas Party,” a rule can dictate that the following procedure be performed go to Evite.com; log in; open invitation for a Christmas party; collect a list of e-mail addresses from those e-mails having responses of “Yes” and “Maybe.”
The above-described pseudocode can be adapted as illustrated in the following code sections for implementing the addressee-selecting module 208 so as to perform address selection in the context of Evite.com™. Following is the initial code-section:
The data types corresponding to this address selection rule firstly include:
Continuing in the context of an Evite-related address-selecting rule, the following pseudocode generates an Evite party invitation and invitation response
The following pseudocode exemplifies the implementation of the basic rule for selecting a party invitation for further processing, according to one embodiment:
Subsequently, options used to drive address list selection can be implemented, as exemplified in the following pseudocode. The parameters are illustratively credentials for an Evite member and the name of a party (of that member) that is to be processed.
Finally, after these preparatory code sections have executed, the actual engine code implemented in the following pseudocode executes for effecting address selection according to the defined rule:
In this pseudo-code, the step “party=eviteSession.getEviteParty(partyName);” shows one location where, in a full implementation, the implementation can provide significant details for retrieving and scanning required data.
In this pseudo-code, the steps “for (EvitePartyInvitation evitePartyInvitation: party.getInvitations( ))” and “if (evitePartyRule.select(evitePartyInvitation))” together show one very simple rule for selecting party invitations. In this case, the selection of potential invitations and selection of actual invitations for the address list is provided in separate locations. In other cases, the selection of addresses can interleave calls to retrieve data objects (such as the EviteParty, EviteMember, and EvitePartyInvitation data objects) with applications of a selection rule. That would be the case, for example, when the retrieval of data objects requires the retrieval of potentially many linked data objects, and the scans for these data objects requires an application of the selection rule before proceeding with the retrieval of particular data objects. Also, the application of the selection rule during the retrieval of data objects might be necessary to limit the amount or depth of the scans for data objects.
In still another embodiment, the addressee-selecting module 208 can be configured to access the electronic data file at a remotely-located site and automatically link to another site, based upon the addressee-selecting rule. For example, a rule corresponding to a list name titled “Contributors to the XYZ Blog” can dictate the following procedure: go to the XYZ blog home page; collect e-mail addresses from that page; follow the “Next” link and collect addresses. The rule can further dictate that the procedure be repeated until there are no more “Next” links remaining. Thus, according to yet another embodiment, the addressee-selecting module 208 can be further configured to automatically determine when no additional links are identifiable and to successively link to a plurality of other sites until no additional links are identifiable.
Alternatively or additionally, the rule can specify that addresses are to be collected only from submissions that have been received within the last six months. According to still another embodiment, therefore, the addressee-selecting module 208 can be configured to select the at least one addressee from an electronic data file based upon a user-specified date and/or a user-specified time associated with the at least one addressee provided in the addressee-selecting rule.
The addressee-selecting module 208 can be further configured to select, based upon the addressee-selecting rule, one of a plurality of electronically stored messages pre-specified by a user. Once the appropriate message has been selected, the module 208 can cause the message to be inserted into a field of the e-mail prior to conveying the e-mail over a data communications network.
Referring now to
According to one embodiment of the method 300, the selecting step can comprise identifying the electronic data file from among a plurality of different data files based upon the addressee-selecting rule, and, in response thereto, accessing the electronic data file. According to another embodiment of the method 300, the selecting step can comprise accessing the electronic data file at a remotely-located site and automatically performing a log-in procedure to access the electronic data file based upon the addressee-selecting rule.
In still another embodiment of the method 300, the selecting step comprises accessing the electronic data file at a remotely-located site and automatically linking to another site based upon the addressee-selecting rule. Moreover, the automatic linking can comprise determining when additional links are identifiable and successively linking to a plurality of other sites until no additional links are identifiable.
As illustrated by the accompanying subroutine, the processing step 414 can further entail determining at step 416 whether additional attendees are to be processed. If so, a link is followed to the attendee's profile at step 418 and the attendee's address is added to the collection of identified attendees at step 420. When no additional attendees are to be processed, the subroutine returns to step 424.
Similarly,
If the target message date has not elapsed, the method 800 proceeds to step 822, at which point a determination is made at decision block 824 as to whether the blog-page has a next link. If so, the next link is followed to the next blog page at step 826 to the blog is followed and the method 800 iteratively continues until the collection of addresses is complete at step 828.
According to yet another embodiment of the method 300, the selecting step can comprise selecting the one or more addressees from an electronic data file based upon a user-specified date and/or a user-specified time associated with the at least one addressee provided in the addressee-selecting rule. The method, according to another embodiment, can further include selecting, based upon the addressee-selecting rule, one of a plurality of electronically stored messages pre-specified by a user and inserting the message into a field of the e-mail prior to conveying the e-mail over a data communications network.
The invention, as also already noted, can be embedded in a computer program product, such as magnetic tape or optically-readable disk, in which is embedded computer-readable code. The code, defining a computer program, can be configured to implement the methods described herein when loaded in a computer system that is able to carry out these methods. Computer program in the present context means any expression, in any language, code, or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
The foregoing description of preferred embodiments of the invention have been, presented for the purposes of illustration. The description is riot intended to limit the invention to the precise forms disclosed. Indeed, modifications and variations will be readily apparent from the foregoing description. Accordingly, it is intended that the scope of the invention not be limited by the detailed description provided herein.