IP Library Granted Patent US 8,990,401
Granted Patent B2
US 8,990,401 · App. 12/344,123 · Granted Mar 24, 2015

Fast path message transfer agent

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,990,401
App. No.
12/344,123
Granted
Mar 24, 2015
Kind
B2
Abstract

A method of providing a fast path message transfer agent is provided. The method includes receiving bytes of a message over a network connection and determining whether the number of bytes exceeds a predetermined threshold. If the number of bytes is less than a predetermined threshold, then the message is written only to memory. However, if the number of bytes exceeds the predetermined threshold, then some of the bytes (e.g. up to the predetermined threshold) are written to memory, wherein the remainder of the bytes are stored onto the non-volatile storage. If the message was received successfully by each destination, then the message is removed from the memory/non-volatile storage. If not, all failed destinations are identified and the message (with associated failed destinations) is stored on the non-volatile storage for later sending.

Claims (25)

1. A method, implemented in hardware and software, comprising:

receiving a network connection from a first email server at a second email server, the connection being configured for delivering an email message from the first email server to one or more intended recipients of the email message via the second email server;

receiving, at the second email server via the network connection with the first email server, email addresses of the one or more intended recipients of the email message; and

determining whether connections can be formed from the second email server to the one or more intended recipients of the email message,

wherein if the connections can be formed then:

receiving bytes of the email message over the connection from the first email server;

storing the bytes of the message in transient memory while tracking whether the bytes of the email message in transient memory exceed a predetermined threshold;

if the bytes of the email message in transient memory exceed the predetermined threshold, storing all bytes of the email message in a non-volatile storage device and erasing any bytes of the email message stored in transient memory; and

sending the bytes of the email message to the one or more recipients of the email message over the connections from the second email server to the one or more intended recipients of the email message.

2. The method of claim 1 , wherein if the connections cannot be formed, then retrying to form the connections to the one or more intended recipients of the email message a predetermined number of times.

3. The method of claim 1 , wherein if determined that the bytes of the email message exceed the predetermined threshold, the bytes of the email message are subsequently only stored in the non-volatile storage device.

4. The method of claim 1 , further comprising retrying forming the connections to the one or more intended recipients of the email message a predetermined number of times when determining that connections cannot be formed from the second email server to the one or more intended recipients of the email message.

5. A non-transitory computer readable medium storing a software program, the software program being executable to provide operations comprising:

receiving a network connection from a first email server to a second email server, the connection being configured for delivering an email message from the first email server to one or more intended recipients of the email message via the second email server;

receiving, at the second email server via the network connection with the first email server, addresses of the one or more intended recipients of the email message; and

determining whether connections can be formed from the second email server to the one or more intended recipients of the email message,

wherein if so, then

receiving bytes of the email message over the connection from the first email server,

storing the bytes of the message in transient memory while tracking whether the bytes of the email message in transient memory exceed a predetermined threshold,

if the bytes of the email message in transient memory exceed the predetermined threshold, storing all bytes of the email message in a non-volatile storage device and erasing any bytes of the email message stored in transient memory, and

sending the bytes to the one or more recipients of the email message over the connections from the second email server to the one or more intended recipients of the email message.

6. The computer readable medium of claim 5 , wherein the operations further comprise retrying forming the connection to the one or more intended recipients of the message a predetermined number of times when determining that connections cannot be formed from the second email server to the one or more intended recipients of the email message.

7. The computer readable medium of claim 5 , wherein operations further comprise responding to the first server that connections to all of the one or more intended recipients of the email message were not successful when determining that connections cannot be formed from the second email server to the one or more intended recipients of the email message.

8. The computer readable medium of claim 5 , wherein the operations further comprise responding to the first email server that the email message was successfully received by the one or more intended recipients of the email message when the bytes are received by the one or more intended recipients of the email message.

9. The computer readable medium of claim 5 , wherein the operations further comprise responding to the first email server that message transfer was not successful when not all the bytes are received by the one or more intended recipients of the email message.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded Mar 8, 2016
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
To: CRITICAL PATH, INC.
Reel/Frame 037924/0246 →
RELEASE OF SECURITY INTEREST Recorded Dec 3, 2013
From: SILICON VALLEY BANK
To: CRITICAL PATH, INC.
Reel/Frame 031709/0175 →
SECURITY AGREEMENT Recorded Dec 3, 2013
From: CRITICAL PATH, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 031763/0778 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2013
From: MIRAPOINT SOFTWARE INC
To: CRITICAL PATH, INC.
Reel/Frame 031681/0577 →
RELEASE OF SECURITY INTEREST Recorded Nov 11, 2013
From: ESCALATE CAPITAL I, L.P.
To: CRITICAL PATH, INC.
Reel/Frame 031578/0520 →
THIRD AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 31, 2012
From: CRITICAL PATH, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 027629/0433 →
RELEASE OF SECURITY INTEREST Recorded Dec 2, 2010
From: SQUARE 1 BANK
To: MIRAPOINT SOFTWARE, INC.
Reel/Frame 025381/0870 →
SECURITY AGREEMENT Recorded Nov 6, 2010
From: CRITICAL PATH, INC.
To: SILICON VALLEY BANK
Reel/Frame 025328/0374 →
SECURITY AGREEMENT Recorded Jul 12, 2010
From: MIRAPOINT SOFTWARE, INC.
To: SQUARE 1 BANK
Reel/Frame 024662/0831 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 24, 2009
From: MIRAPOINT SOFTWARE, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 022869/0804 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2009
From: TAYLOR, BRADLEY
To: MIRAPOINT SOFTWARE, INC.
Reel/Frame 022374/0239 →