IP Library Granted Patent US 11,848,985
Granted Patent B2
US 11,848,985 · App. 17/163,058 · Granted Dec 19, 2023

Mass electronic mail sending system with flexible public sending network addresses

Inventor: Patrick Morrison Bennett (Carmel, IN)
Assignee: Salesforce, Inc.
H04L67/1001G06F9/45558H04L61/2528H04L61/5007H04L67/56G06F2009/4557G06F2009/45595H04L2101/37
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 11,848,985
App. No.
17/163,058
Granted
Dec 19, 2023
Kind
B2
Abstract

A method by an email sending system to send emails from different public sending network addresses. The method includes receiving, by a load balancer, an email that is to be sent by the email sending system, sending, by the load balancer, the email to a mail transfer agent (MTA) instance from a plurality of MTA instances, wherein each of the MTA instances has access to configuration data that indicates which proxy virtual machines (VMs) serve as egresses for which public sending network addresses, determining, by the MTA instance, a public sending network address to send the email from, determining, by the MTA instance based on consulting the configuration data, a proxy VM that serves as an egress for the public sending network address, and sending, by the MTA instance, the email to the proxy VM for sending to its destination from the public sending network address.

Claims (42)

1. A method by one or more network devices implementing an email sending system to send emails from different public sending network addresses, the method comprising:

receiving, by a load balancer, an email that is to be sent by the email sending system;

sending, by the load balancer, the email to a mail transfer agent (MTA) instance, wherein the MTA instance is one of a plurality of MTA instances, and wherein each of the plurality of MTA instances has access to configuration data that indicates which of a plurality of proxy virtual machines (VMs) serve as egresses for which of a plurality of public sending network addresses;

determining, by the MTA instance, a public sending network address that the email sending system is to send the email from;

determining, by the MTA instance based on consulting the configuration data, a proxy VM that serves as an egress for the public sending network address;

sending, by the MTA instance, the email to the proxy VM that serves as the egress for the public sending network address; and

sending, by the proxy VM that serves as the egress for the public sending network address, the email to its destination from the public sending network address such that the destination sees the public sending network address as being a source network address of the email, wherein the proxy VM also serves as an egress for one or more additional public sending network addresses from which the email sending system can send emails.

2. The method of claim 1 , wherein the plurality of MTA instances is shared among a plurality of users of the email sending system.

3. The method of claim 1 , wherein the email, when received by the MTA instance, includes a header that indicates a requested public sending network addresses for the email.

4. The method of claim 3 , wherein the header is an X-Virtual-MTA header.

5. The method of claim 3 , wherein the configuration data further indicates one or more secondary public sending network addresses that the email sending system is to send emails from if the email sending system is unable to send emails from the requested public sending network address.

6. The method of claim 5 , wherein the MTA instance determines the public sending network address that the email sending system is to send the email from to be the requested public sending network address indicated in the header of the email in response to a determination that the proxy VM that serves as the egress for the requested public sending network address is operational.

7. The method of claim 5 , wherein the MTA instance determines the public sending network address that the email sending system is to send the email from to be one of the one or more secondary public sending network addresses indicated in the configuration data in response to a determination that the proxy VM that serves as the egress for the requested public sending network address is not operational.

8. The method of claim 1 , wherein the configuration data further indicates private network addresses corresponding to the plurality of public sending network addresses.

9. The method of claim 8 , further comprising:

determining, by the MTA instance based on consulting the configuration data, a private network address corresponding to the public sending network address; and

sending, by the MTA instance to the proxy VM that serves as the egress for the public sending network address, an indication of the private network address corresponding to the public sending network address, wherein the proxy VM that serves as the egress for the public sending network address uses the private network address corresponding to the public sending network address to send the email to its destination from the public sending network address.

10. The method of claim 9 , wherein the indication of the private network address corresponding to the public sending network address is sent by the MTA instance to the proxy VM that serves as the egress for the public sending network address in a proxy protocol header during connection establishment.

11. The method of claim 1 , wherein the MTA instances in the plurality of MTA instances are spread across a plurality of availability zones.

12. The method of claim 1 , wherein the proxy VMs in the plurality of proxy VMs are spread across a plurality of availability zones.

13. The method of claim 1 , wherein the email, when received by the MTA instance, includes a header that indicates a network address redundancy group that the email sending system is to send the email from, wherein the network address redundancy group includes a plurality of public sending network addresses, and wherein the MTA instance determines the public sending network address that the email sending system is to send the email from to be one of the public sending network addresses included in the network address redundancy group.

14. A non-transitory machine-readable storage medium that provides instructions that, if executed by one or more processors of one or more network devices implementing an email sending system, will cause the email sending system to perform operations for sending emails from different public sending network addresses, the operations comprising:

receiving, by a load balancer, an email that is to be sent by the email sending system;

sending, by the load balancer, the email to a mail transfer agent (MTA) instance, wherein the MTA instance is one of a plurality of MTA instances, and wherein each of the plurality of MTA instances has access to configuration data that indicates which of a plurality of proxy virtual machines (VMs) serve as egresses for which of a plurality of public sending network addresses;

determining, by the MTA instance, a public sending network address that the email sending system is to send the email from;

determining, by the MTA instance based on consulting the configuration data, a proxy VM that serves as an egress for the public sending network address;

sending, by the MTA instance, the email to the proxy VM that serves as the egress for the public sending network address; and

sending, by the proxy VM that serves as the egress for the public sending network address, the email to its destination from the public sending network address such that the destination sees the public sending network address as being a source network address of the email, wherein the proxy VM also serves as an egress for one or more additional public sending network addresses from which the email sending system can send emails.

15. The non-transitory machine-readable storage medium of claim 14 , wherein the plurality of MTA instances is shared among a plurality of users of the email sending system.

16. The non-transitory machine-readable storage medium of claim 14 , wherein the email, when received by the MTA instance, includes a header that indicates a requested public sending network addresses for the email.

17. The non-transitory machine-readable storage medium of claim 16 , wherein the configuration data further indicates one or more secondary public sending network addresses that the email sending system is to send emails from if the email sending system is unable to send emails from the requested public sending network address.

18. One or more network devices configured to implement an email sending system that sends emails from different public sending network addresses, the one or more network devices comprising:

one or more processors; and

non-transitory machine-readable storage media having computer-readable instructions stored therein, which when executed by the one or more processors, causes the email sending system to:

receive, by a load balancer, an email that is to be sent by the email sending system;

send, by the load balancer, the email to a mail transfer agent (MTA) instance, wherein the MTA instance is one of a plurality of MTA instances, and wherein each of the plurality of MTA instances has access to configuration data that indicates which of a plurality of proxy virtual machines (VMs) serve as egresses for which of a plurality of public sending network addresses;

determine, by the MTA instance, a public sending network address that the email sending system is to send the email from;

determine, by the MTA instance based on consulting the configuration data, a proxy VM that serves as an egress for the public sending network address;

send, by the MTA instance, the email to the proxy VM that serves as the egress for the public sending network address; and

send, by the proxy VM that serves as the egress for the public sending network address, the email to its destination from the public sending network address such that the destination sees the public sending network address as being a source network address of the email, wherein the proxy VM also serves as an egress for one or more additional public sending network addresses from which the email sending system can send emails.

19. The one or more network devices of claim 18 , wherein the plurality of MTA instances is shared among a plurality of users of the email sending system.

20. The one or more network devices of claim 18 , wherein the proxy VMs in the plurality of proxy VMs are spread across a plurality of availability zones.

Assignments (2)
CHANGE OF NAME Recorded Feb 17, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 062794/0656 →
TO CORRECT THE APPLICATION NUMBER IN THE ORIGINAL COVER SHEET PREVIOUSLY RECORDED AT REEL/FRAME NUMBER 061663/0275 Recorded Feb 1, 2023
From: BENNETT, PATRICK MORRISON
To: SALESFORCE.COM, INC.
Reel/Frame 062609/0642 →
Continuity (1)
Related Publication 20220247810A1 · Aug 4, 2022