IP Library Granted Patent US 8,316,090
Granted Patent B2
US 8,316,090 · App. 11/339,906 · Granted Nov 20, 2012

Systems and methods for communicating logic in e-mail messages

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,316,090
App. No.
11/339,906
Granted
Nov 20, 2012
Kind
B2
Abstract

Computer program products apparatus, and methods for distributing encoded messages to one or more recipients. In one aspect, an electronic request is received using an e-mail protocol. The electronic request includes instructions for accessing one or more destinations corresponding to the recipients and logic for accessing data relating to the recipients. The data relating to recipients is obtained using the logic for accessing the data in the electronic request. For each respective recipient, a message body of a message corresponding to said respective recipient is formatted using the data relating to the respective recipient thereby constructing the one or more encoded messages. The one or more encoded messages are then distributed to the recipients using the one or more corresponding destinations.

Claims (86)

1. A first computer comprising a processor and a memory, the memory comprising instructions, executable by the processor, for:

receiving, at the first computer, a human-readable message over a network or the Internet from a second computer, wherein the human-readable message is in the form of an e-mail;

determining, at the first computer, whether that human-readable message includes (i) a tag originated by a sender of the human-readable message that is associated with the second computer, wherein the tag identifies the human-readable message as a message that is to be pre-processed prior to forwarding by the first computer to a plurality of recipients and (ii) human-readable instructions, originated by the sender of the human-readable message that is associated with the second computer, wherein the human-readable instructions are interpretable by the first computer to direct that first computer to pre-process the human-readable message by a pre-process routine, the pre-process routine including instructions for:

requesting and receiving, over a network or the Internet from a third computer, data from one or more data fields of a database responsive to the human-readable instructions and without human intervention, that data from those one or more data fields each being associated with said plurality of recipients of that human-readable message;

modifying that human-readable message, responsive to the human-readable instructions and without human intervention, to include human-readable versions of that data from those one or more data fields thereby creating a plurality of processed human-readable messages; and

forwarding the plurality of processed human-readable messages over a network or the Internet to a plurality of fourth computers, each fourth computer in the plurality of fourth computers associated with at least one recipient in the plurality of recipients;

wherein one or more of those human-readable instructions is interpretable by the first computer to direct the first computer

to conditionally conduct a change in flow of control by those human-readable instructions, in response to a comparison, by the first computer, of a value of that data from those one or more data fields with one or more human-readable data values in that human-readable message, thereby causing each of the plurality of human-readable messages to have different data from the database that is uniquely associated with a respective recipient in the plurality of recipients; and

when it is determined that the human-readable message includes (i) a tag and (ii) human-readable instructions, pre-processing the human-readable message in accordance with the human-readable instructions using the pre-process routine.

2. The first computer of claim 1 , wherein one or more of those human-readable instructions in that human-readable message is interpretable by the first computer to direct the first computer to perform a looping construct, that looping construct being responsive to that data from those one or more data fields.

3. The first computer of claim 1 , wherein

one or more of those human-readable instructions in that human-readable message is interpretable by the first computer to direct the first computer

to send a database query or web services request over a network or the Internet to the third computer; and

to receive a response to that database query or web services request from the third computer over a network or the Internet;

wherein at least a portion of that database query or web services request directs that third computer to modify its database.

4. A physical medium maintaining human-readable instructions interpretable by a first computer to direct the first computer:

to receive at the first computer a human-readable message over a network or the Internet from a second computer, wherein the human-readable message is in the form of an e-mail;

to determine, at the first computer, whether that human-readable message includes (i) a tag originated by a sender of the human-readable message that is associated with the second computer, wherein the tag identifies the human-readable message as a message that is to be pre-processed by the first computer prior to forwarding by the first computer to a plurality of recipients and (ii) human-readable instructions, originated by the sender of the human readable message that is associated with the second computer, wherein the human-readable instructions are interpretable by the first computer to direct that first computer device to pre-process the human-readable message by a pre-process routine, the pre-process routine including instructions for:

requesting and receiving at the first computer, over a network or the Internet from a third computer, data from one or more data fields of a database responsive to the human-readable instructions and without human intervention, that data from those one or more data fields each being associated with recipients of that human-readable message;

modifying that human-readable message, responsive to the human-readable instructions and without human intervention, to include human-readable versions of that data from those one or more data fields thereby creating a plurality of processed human-readable messages; and

forwarding the plurality of processed human-readable messages over a network or the Internet to a plurality of fourth computers from the first computer, wherein each fourth computer in the plurality of fourth computers is associated with at least one recipient in the plurality of recipients;

wherein one or more of those human-readable instructions is interpretable by that first computer to direct that first computer

to conditionally conduct a change in flow of control by those human-readable instructions, in response to a comparison, by the first computer, of a value of that data from those one or more data fields with one or more human-readable data values in that human-readable message, thereby causing each of the plurality of human-readable messages to have different data from the database that is uniquely associated with a respective recipient in the plurality of recipients; and

when it is determined that the human-readable message includes (i) a tag and (ii) human-readable instructions, to pre-process the human-readable message in accordance with the human-readable instructions using the pre-process routine.

5. A physical medium as in claim 4 , wherein one or more of those human-readable instructions in that human-readable message is interpretable by the first computer to direct the first computer to perform a looping construct, that looping construct being responsive to that data from those one or more data fields.

6. A physical medium as in claim 4 , wherein

one or more of those human-readable instructions in that human-readable message is interpretable by the first computer to direct the first computer

to send a database query or web services request to said third computer; and

to receive a response to that database query or web services request from said third computer;

wherein at least a portion of that database query or web services request directs said third computer to modify its database.

7. A first computer for distributing a plurality of encoded messages to a corresponding plurality of recipients, the first computer comprising a processor and a memory, the memory comprising instructions, executable by the processor, for:

(A) receiving, at the first computer, a human-readable electronic request over a network or the Internet from a second computer using an e-mail protocol;

(B) determining, at the first computer, whether said electronic request includes:

(i) a tag originated by a sender of the human-readable electronic request that is associated with the second computer, wherein the tag identifies the electronic request as a message that is to be pre-processed by the first computer prior to forwarding by the server computer to the plurality of recipients;

(ii) instructions for accessing a plurality of destinations corresponding to said plurality of recipients; and

(iii) conditional logic for accessing data over a data network or the Internet relating to recipients in said plurality of recipients from one or more data fields of a database on a third computer, that data from those one or more data fields each being associated with said plurality of recipients; and

(C) when it is determined that said electronic request includes (i) a tag, (ii) instructions for accessing a plurality of destinations, and (iii) conditional logic, pre-processing said electronic request by:

(1) obtaining, over a network or the Internet from said third computer, said data relating to recipients in said plurality of recipients from said database using said conditional logic for accessing said data;

(2) formatting, for each respective recipient in said plurality of recipients, a message body of a message corresponding to said respective recipient using said data relating to said respective recipient obtained in step (1) without human intervention and responsive to said conditional logic thereby constructing said plurality of encoded messages, wherein each encoded message in the plurality of encoded messages has different data from the database that is uniquely associated with a respective recipient in the plurality of recipients; and

(3) distributing each respective encoded message in said plurality of encoded messages from the first computer over a network or the Internet to a corresponding fourth computer that is associated with a recipient in said plurality of recipients using a corresponding destination in said plurality of destinations.

8. The first computer of claim 7 , wherein the conditional logic for accessing said data comprises instructions for sending a request for said data to said third computer over a data network or the Internet.

9. The first computer of claim 8 , wherein the instructions for sending a request comprise an SQL query or web service request.

10. The first computer of claim 7 , wherein the data is update information.

11. The first computer of claim 7 , wherein the e-mail protocol is the simple mail transfer protocol (SMTP), the X.400 International Telecommunication Union standard (X.400), the Novell message handling service (MHS), or the extended simple mail transfer protocol (ESMTP).

12. The first computer of claim 7 , wherein the electronic request comprises an extensible markup language tag.

13. The first computer of claim 7 , wherein the data relating to recipients in said plurality of recipients comprises customer data.

14. The first computer of claim 7 , wherein the database comprises a customer relationship management database, an enterprise resource planning database, a human resource database, or a supply chain database.

15. The first computer of claim 7 , wherein the data relating to said plurality of recipients comprises customer data, and said conditional logic for accessing the data comprises the customer data itself.

16. The first computer of claim 7 , wherein the data relating to said plurality of recipients is secure and the electronic request includes access rights to retrieve the data.

17. The first computer of claim 7 , wherein the instructions for accessing said plurality of destinations comprises a list of e-mail destinations that is encoded within said electronic request.

18. The first computer of claim 7 , wherein said conditional logic for accessing the data comprises an SQL query statement that specifies the name of a database, a database account login, and a database query.

19. The first computer of claim 7 , wherein said conditional logic for accessing the data includes an HTTP request.

20. The first computer of claim 7 , wherein the conditional logic for accessing the data comprises a selectional structure or a looping construct.

21. The first computer of claim 7 , wherein the conditional logic for accessing the data comprises a gate selected from the group consisting of AND, OR, XOR, NOT, NAND, NOR, and XNOR.

22. The first computer of claim 7 , wherein the conditional logic for accessing the data comprises a propositional calculus logical operator selected from the group consisting of negation, conjunction, disjunction, implication, and equivalence.

23. The first computer of claim 7 , wherein the electronic request is an e-mail message and wherein the instructions for accessing said plurality of destinations and/or the conditional logic for accessing data is in the body of the e-mail message.

24. The first computer of claim 7 , wherein the electronic request is an e-mail message and wherein the instructions for accessing said plurality of destinations and/or the conditional logic for accessing data is in an attachment to the e-mail message.

25. The first computer of claim 7 , wherein the electronic request is an e-mail message and wherein the instructions for accessing said plurality of destinations is obtained from a header of the e-mail.

26. A computer program product for use in conjunction with a first computer, the computer program product comprising a non-transitory computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising instructions for:

(A) receiving, at the first computer, a human-readable electronic request over a network or the Internet using an e-mail protocol;

(B) determining, at the first computer, whether said electronic request includes:

(i) a tag originated by a sender of the human-readable electronic request that is associated with a second computer, wherein the tag identifies the electronic request as a message that is to be pre-processed by the first computer prior to forwarding by the first computer to a plurality of recipients;

(ii) instructions for accessing a plurality of destinations corresponding to the plurality of recipients; and

(iii) conditional logic for accessing data relating to recipients in said plurality of recipients from one or more data fields of a database on a third computer, that data from those one or more data fields each being associated with said plurality of recipients; and

(C) when it is determined that said electronic request includes (i) a tag, (ii) instructions for accessing a plurality of destinations, and (iii) conditional logic, pre-processing said electronic request by:

(1) obtaining, over a network or the Internet from said third computer, said data relating to recipients in said plurality of recipients from said database using said conditional logic for accessing said data;

(2) formatting, for each respective recipient in said plurality of recipients, a message body of a message corresponding to said respective recipient using said data relating to said respective recipient obtained by said obtaining (1) without human intervention and responsive to said conditional logic thereby constructing a plurality of encoded messages, wherein each encoded message in the plurality of encoded messages has different data from the database that is uniquely associated with a respective recipient in the plurality of recipients; and

(3) distributing each encoded message in said plurality of encoded messages from the first computer over a network or the Internet to a corresponding fourth computer associated with a recipient in said plurality of recipients using a corresponding destination in said plurality of destinations.

27. The computer program product of claim 26 , wherein the conditional logic for accessing said data comprises instructions for sending a request to said second computer for said data.

28. The computer program product of claim 27 , wherein the instructions for sending a request comprise an SQL query or web service request.

29. The computer program product of claim 26 , wherein the data is update information.

30. The computer program product of claim 26 , wherein the e-mail protocol is the simple mail transfer protocol (SMTP), the X.400 International Telecommunication Union standard (X.400), the Novell message handling service (MHS), or the extended simple mail transfer protocol (ESMTP).

31. The computer program product of claim 26 , wherein the electronic request comprises an extensible markup language tag.

32. The computer program product of claim 26 , wherein the data relating to recipients in said plurality of recipients comprises customer data.

33. The computer program product of claim 26 , wherein the database comprises a customer relationship management database, an enterprise resource planning database, a human resource database, or a supply chain database.

34. The computer program product of claim 26 , wherein the data relating to said plurality of recipients comprises customer data, and said conditional logic for accessing the data comprises the customer data itself.

35. The computer program product of claim 26 , wherein the data relating to said plurality of recipients is secure and the electronic request includes access rights to retrieve the data.

36. The computer program product of claim 26 , wherein the instructions for accessing said plurality of destinations comprises a list of e-mail destinations that is encoded within said electronic request.

37. The computer program product of claim 26 , wherein said conditional logic for accessing the data comprises an SQL query statement that specifies the name of a database, a database account login, and a database query.

38. The computer program product of claim 26 , wherein said conditional logic for accessing the data includes an HTTP request.

39. The computer program product of claim 26 , wherein the conditional logic for accessing the data comprises a selectional structure or a looping construct.

40. The computer program product of claim 26 , wherein the conditional logic for accessing the data comprises a gate selected from the group consisting of AND, OR, XOR, NOT, NAND, NOR, and XNOR.

41. The computer program product of claim 26 , wherein the conditional logic for accessing the data comprises a propositional calculus logical operator selected from the group consisting of negation, conjunction, disjunction, implication, and equivalence.

42. The computer program product of claim 26 , wherein the electronic request is an e-mail message and wherein the instructions for accessing said plurality of destinations and/or the conditional logic for accessing data is in the body of the e-mail message.

43. The computer program product of claim 26 , wherein the electronic request is an e-mail message and wherein the instructions for accessing said plurality of destinations and/or the conditional logic for accessing data is in an attachment to the e-mail message.

44. The computer program product of claim 26 , wherein the electronic request is an e-mail message and wherein the instructions for accessing said plurality of destinations is obtained from a header of the e-mail message.

Assignments (16)
SECURITY INTEREST Recorded Feb 2, 2026
From: MARIGOLD USA, INC.; SAILTHRU, INC.; LIVECLICKER INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 073653/0421 →
RELEASE OF SECURITY INTEREST Recorded Dec 1, 2025
From: HERCULES CAPITAL, INC.
To: SELLIGENT, INC.
Reel/Frame 073067/0468 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT RECORDED AT REEL 59280, FRAME 0669 Recorded Dec 1, 2025
From: BARINGS FINANCE LLC
To: SELLIGENT, INC.
Reel/Frame 073840/0046 →
MERGER Recorded Dec 5, 2024
From: SELLIGENT, INC.
To: MARIGOLD USA, INC.
Reel/Frame 069492/0129 →
SECURITY INTEREST Recorded Mar 16, 2022
From: SELLIGENT, INC.
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 059280/0669 →
SECURITY INTEREST Recorded Jan 13, 2021
From: SELLIGENT, INC.
To: HERCULES CAPITAL, INC., COLLATERAL AGENT
Reel/Frame 054906/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 24, 2020
From: GOLD HILL CAPITAL 2008, LP
To: SELLIGENT INC., FORMERLY KNOWN AS STRONGMAIL SYSTEMS, INC.
Reel/Frame 054456/0962 →
RELEASE OF SECURITY INTEREST Recorded Nov 4, 2020
From: AB PRIVATE CREDIT INVESTORS LLC
To: SELLIGENT, INC.
Reel/Frame 054270/0584 →
RELEASE Recorded Dec 3, 2018
From: SILICON VALLEY BANK
To: STRONGMAIL SYSTEMS, INC.
Reel/Frame 048002/0292 →
SECURITY INTEREST Recorded Nov 5, 2018
From: SELLIGENT, INC.
To: AB PRIVATE CREDIT INVESTORS LLC, AS COLLATERAL AGENT
Reel/Frame 047408/0396 →
CHANGE OF NAME Recorded Oct 22, 2018
From: STRONGVIEW SYSTEMS, INC.
To: SELLIGENT, INC.
Reel/Frame 047287/0699 →
RELEASE OF SECURITY INTEREST Recorded Sep 17, 2018
From: WF FUND IV LIMITED PARTNERSHIP
To: STRONGMAIL SYSTEMS, INC.
Reel/Frame 046892/0947 →
RELEASE OF SECURITY INTEREST Recorded Sep 24, 2015
From: HERCULES TECHNOLOGY GROWTH CAPITAL, INC., AS AGENT
To: STRONGVIEW SYSTEMS, INC.
Reel/Frame 036644/0879 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 16, 2014
From: STRONGVIEW SYSTEMS, INC.
To: HERCULES TECHNOLOGY GROWTH CAPITAL, INC., AS AGENT
Reel/Frame 034642/0623 →
CHANGE OF NAME Recorded Aug 12, 2013
From: STRONGMAIL SYSTEMS, INC.
To: STRONGVIEW SYSTEMS, INC.
Reel/Frame 031004/0533 →
SECURITY AGREEMENT Recorded Aug 2, 2012
From: STRONGMAIL SYSTEMS, INC.
To: WF FUND IV LIMITED PARTNERSHIP
Reel/Frame 028716/0218 →