IP Library Granted Patent US 10,798,039
Granted Patent B2
US 10,798,039 · App. 16/050,594 · Granted Oct 6, 2020

Intelligent real-time SMTP routing

Inventor: Brandon Svec (San Francisco, CA)
Assignee: salesforce.com, inc.
H04L51/14H04L45/74H04L51/12H04L51/22H04L51/28H04L61/1511
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 10,798,039
App. No.
16/050,594
Granted
Oct 6, 2020
Kind
B2
Abstract

A dynamic relay makes real-time decisions about routing to mail transfer agents (MTAs) of email envelopes received by the relay from an SMTP email server. Those decisions can be based on one or more factors, such as MTA respective statuses. They can also be based on information contained in x-header fields provided in the email messages' respective headers (e.g., identifying the individual/entity (or “client”) for whom the email envelope is being generated and/or an IP address of the MTA to select for load balancing or otherwise). This allows, for example, the relay to select among available MTAs for delivery of each message in order to segregate email message traffic for load-balancing and/or based on preferences of specific MTAs for specific clients, or otherwise, while bypassing MTAs that have been blacklisted or are suffering delays.

Claims (25)

1. A method of routing an email comprising receiving, from an email server with an email relay, an email message envelope in accord with an industry-standard simple mail transport protocol (SMTP),

selecting, with a decision engine that is in communications coupling with the email relay, a mail transfer agent (MTA) from a plurality of mail transfer agents (MTAs) that are in at least intermittent coupling with the email relay based on a respective status of the plurality of MTAs, wherein MTAs having the status of unavailable or warming up are bypassed, with the decision engine making the selection as a function of a value of a routing rate in a header statement provided in accord with the SMTP protocol in the email message envelope, wherein the routing rate is a rate at which prior email message envelopes have been sent to the MTA,

transferring, from the email relay to the selected MTA, the email message envelope in accord with the SMTP protocol, and

transferring the email message envelope from the selected MTA to a network that transfers the envelope any of directly and indirectly to a recipient identified in a header statement of the email message in accord with the SMTP protocol.

2. The method of claim 1 , the selecting step including selecting the MTA in response to receipt of the email message envelope by the email relay in the receiving step.

3. The method of claim 2 , the selecting step including selecting the MTA at a time the email message envelope is received by the email relay in the receiving step.

4. The method of claim 2 , the transferring step including transferring the email from the selected MTA to the recipient over an internet.

5. The method of claim 2 , comprising tracking a volume of email message envelopes any received in the receiving step performed by a plurality of email relays or transferred in the transferring step performed by a plurality of such relays.

6. The method of claim 5 , comprising selecting the MTA as a function of the volume tracked in the tracking step.

7. The method of claim 1 , the selecting step including selecting the MTA as a function of a value of any of an addressee domain and a client ID identified in an x-header statement of the email message envelope.

8. The method of claim 1 , the selecting step including passing a value in an x-header statement from the email relay to the decision engine to make the selection.

9. The method of claim 1 , the selecting step including selecting the MTA to load-balance among at least a subset of the plurality of MTAs.

10. The method of claim 1 , the selecting step including selecting the MTA as a function of another of the plurality of MTAs being any of blacklisted or suffering delays.

11. The method of claim 1 , including modifying a virtual IP address of the email relay in accord with a value of an x-header statement of the email message envelope provided in accord with the SMTP protocol.

12. A non-transitory machine readable storage medium having stored thereon a computer program configured to cause a digital data device to perform the steps of:

receiving, from an email server with an email relay, an email message envelope in accord with an industry-standard simple mail transport protocol (SMTP),

selecting, with a decision engine that is in communications coupling with the email relay, a mail transfer agent (MTA) from a plurality of mail transfer agents (MTAs) that are in at least intermittent coupling with the email relay, based on a respective status of the plurality of MTAs, wherein MTAs having the status of unavailable or warming up are bypassed, with the decision engine making the selection as a function of a value of a routing rate in an x-header statement provided in accord with the SMTP protocol in the email message envelope, wherein the routing rate is a rate at which prior email message envelopes have been sent to the MTA,

transferring, from the email relay to the selected MTA, the email message envelope in accord with the SMTP protocol, and

transferring the email message envelope from the selected MTA to a network that transfers the envelope any of directly and indirectly to a recipient identified in the x-header statement of the email message in accord with the SMTP protocol.

13. The machine readable storage medium of claim 12 , wherein the computer program is configured to cause the digital data device to perform the further steps of

selecting step including selecting the MTA in response to receipt of the email message envelope in the receiving step.

14. The machine readable storage medium of claim 12 , wherein the computer program is configured to cause the digital data device to perform the further steps of

selecting the MTA as a function of a value of any of an addressee domain and a client ID identified in a said x-header statement of the email message envelope.

15. The machine readable storage medium of claim 12 , wherein the computer program is configured to cause the digital data device to perform the further steps of

passing the value in the x-header statement from the email relay to the decision engine to make the selection.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2018
From: SVEC, BRANDON
To: SALESFORCE.COM, INC.
Reel/Frame 046514/0459 →
Continuity (1)
Related Publication 20200045005A1 · Feb 6, 2020