US9578096B2 - Peer-to-peer email - Google Patents

Peer-to-peer email Download PDF

Info

Publication number
US9578096B2
US9578096B2 US14/857,640 US201514857640A US9578096B2 US 9578096 B2 US9578096 B2 US 9578096B2 US 201514857640 A US201514857640 A US 201514857640A US 9578096 B2 US9578096 B2 US 9578096B2
Authority
US
United States
Prior art keywords
node computer
node
message
receiving user
online
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
US14/857,640
Other versions
US20160028799A1 (en
Inventor
William R. Kallman
Donald L. Hoffman
Mark T. Mitchell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Edgelink LLC
Original Assignee
Scayl Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Scayl Inc filed Critical Scayl Inc
Priority to US14/857,640 priority Critical patent/US9578096B2/en
Assigned to SCAYL, INC. reassignment SCAYL, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MITCHELL, MARK T., KALLMAN, WILLIAM R., HOFFMAN, DONALD L.
Publication of US20160028799A1 publication Critical patent/US20160028799A1/en
Application granted granted Critical
Publication of US9578096B2 publication Critical patent/US9578096B2/en
Assigned to EDGELINK, LLC reassignment EDGELINK, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SCAYL, INC.
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • H04L12/5815
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/043Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1063Discovery through centralising entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 

Definitions

  • SMTP Simple Mail Transport Protocol
  • a first SMTP server e.g., mail.yin.com
  • SMTP clients e.g., Microsoft® Outlook, Mozilla® Thunderbird
  • the email messages may include one or more recipient email addresses (e.g., john @yang.net).
  • the first SMTP server may route the received messages to a second SMTP server on the intended recipient's domain (e.g., mail.yang.net) using known systems such as the domain name system (“DNS”).
  • DNS domain name system
  • the second SMTP server may deliver the email messages to the intended recipient's mailbox, which may be stored on the second SMTP server and made available to the intended recipient over the network.
  • DNS domain name system
  • SMTP servers may be configured to restrict the size of attachments which may be sent with an email message.
  • Other SMTP servers may limit the amount of storage space (i.e., the size of a mailbox) allocated to a user to store emails and attachments.
  • Still other SMTP servers may not protect or offer the capability of protecting emails and attachments associated therewith from malicious or otherwise unintended recipients, either locally or while in transit over a computer network.
  • FIG. 1 depicts an example email system, in accordance with at least one embodiment
  • FIGS. 2A-E depict an email transmission on a system where the sender and the intended recipient are both online simultaneously, in accordance with at least one embodiment
  • FIGS. 3A-H depict an email transmission on a system where the intended recipient is offline, in accordance with at least one embodiment
  • FIG. 4 depicts an example method of preventing unsolicited emails, in accordance with at least one embodiment
  • FIG. 5 depicts a computer using webmail from a remote location to obtain a user's email from his or her computer, in accordance with at least one embodiment.
  • a Peer-to-Peer (“P2P”) email and social networking system is provided for use by a plurality of users to exchange emails and attachments.
  • P2P Peer-to-Peer
  • Such a system may be controlled by one or more central servers, or it may be controlled by decentralized services distributed over a mesh network.
  • Such a mesh network may comprise a plurality of node computers, each running a P2P email client according to the present disclosure. Node computers may be alternatively referred to as “peers.”
  • Emails may be stored in mailboxes residing on each node, rather than centrally located. The system may encrypt emails during transmission, and the emails may remain encrypted while stored at each node computer.
  • the system may allow the user of each node computer to configure her email client with the user's interests (e.g., kayaking).
  • Those interests may be communicated to a central server or decentralized distributed service, where they may be associated with the user's email address, so that potential advertisers may search by interest type, and send solicited emails to users associated with the searched-for interest types.
  • system may be configured to provide remote access to the user's local email when the user is away from her local computer.
  • Such access may be provided via a webmail webpage interfacing via a secure tunnel to the user's local email store.
  • FIG. 1 depicts an example P2P email system 10 comprising node computers such as sender 20 and recipient 30 .
  • Sender 20 may be a computer controlled by a first user intending to send an email message to a recipient 30 .
  • Recipient 30 likewise may be a computer controlled by a second user who is the intended recipient of the email message.
  • Sender 20 and recipient 30 may be connected by a network 40 .
  • Sender 20 may include an email client 22 , a local email store 24 , and an email agent 26 .
  • Recipient 30 likewise may include an email client 32 , a local email store 34 , and an email agent 36 .
  • Network 40 may be a local or wide-area computer network, including the Internet.
  • the P2P email system 10 may be controlled by components on network 40 , such as decentralized distributed services 42 including identity manager 44 , presence manager 46 , delivery manager 48 , and contact store 49 , as well as cache servers 50 .
  • the distributed services 42 will be described in further detail below. While decentralized distributed services 42 are shown having the four components 44 , 46 , 48 and 49 as being separate, these components may alternatively reside on a single server, and there may be more than one server hosting one or more of these services. Moreover, additional services which are not shown (e.g., a gateway server for sending emails to traditional email domains) may also be included.
  • Email clients 22 and 32 may include user interfaces resembling traditional email clients (e.g., Outlook, Thunderbird), and may be configured to allow a user to draft, send and receive P2P emails. Email clients 22 and 32 may further include interfaces allowing a user to select interests (e.g., kayaking, dating), which may be communicated to decentralized distributed services 42 so that potential advertisers may communicate solicited emails to clients 22 and 32 , as will be discussed further below.
  • user interfaces resembling traditional email clients (e.g., Outlook, Thunderbird), and may be configured to allow a user to draft, send and receive P2P emails.
  • Email clients 22 and 32 may further include interfaces allowing a user to select interests (e.g., kayaking, dating), which may be communicated to decentralized distributed services 42 so that potential advertisers may communicate solicited emails to clients 22 and 32 , as will be discussed further below.
  • Local email stores 24 and 34 may be portions of memory (e.g., on a local hard drive) which may be used to store email messages and associated attachments. In other words, local email stores 24 and 34 may serve similar roles as mailboxes on traditional SMTP servers. Messages stored in local email stores 24 and 34 may be encrypted. The amount of space allocated to a user may be configured, and in some embodiments may be limited only by the computer's storage capabilities. In addition to emails and attachments, local mail stores 24 and 34 may store interest information (a.k.a.
  • user metadata e.g., the user's friends residing on P2P email system and elsewhere
  • user profiles e.g., photos available for viewing, whom may view the photos, personal information and to whom it is available
  • group membership e.g., open or closed groups of users of P2P email system 10 having common interests/metadata/contacts
  • Interest information, contacts, profiles and other similar information may be configured by a user using email clients such as 22 or 32.
  • Email agents 26 and 36 may be processes executing on node computers such as sender 20 or recipient 30 forming the P2P network. While a computer such as sender 20 or recipient 30 is connected to network 40 and is executing its email agent ( 26 or 36 ), that computer may be considered ‘online’ for purposes of the P2P network and this discussion.
  • Contact store 49 may be a central server or servers, or it may be a service distributed among various nodes in the P2P email system 10 . It may contain information allowing peers on P2P email system 10 to locate other peers, including information similar to that stored in local email stores described above like interest information, contacts, metadata, group membership, and the like. Peers may be searched at contact store 49 using various search values, such as interests, group membership, friendship networks, personal profiles, and the like. In some embodiments, users may synchronize information stored in their local email stores 24 , 34 such as metadata, profiles, and contacts with information contained in contact store 49 . In other embodiments where contact store 49 is a service distributed among various nodes, there may be a central contact store (not shown) which is configured to synchronize all nodes on which contact store 49 is contained.
  • Cache servers 50 may comprise one or more computers on network 40 which may be used as intermediate points in email communications between computers such as sender 20 and recipient 30 .
  • Cache servers 50 may be configured to cache at least a portion of email messages, as well as attachments thereto.
  • each cache server may be a node computer, similar to sender 20 or receiver 30 , forming another peer on the P2P system.
  • cache servers 50 may be specialized computers maintained specifically for the purpose of caching emails.
  • cache servers may only cache attachments having a size smaller than a predetermined size (e.g., ⁇ 50 Megabytes).
  • a given email message in transition between sender 20 and recipient 30 may be stored at a number of cache servers 50 while awaiting delivery, providing redundancy and high availability of the email message to recipient 30 in case some of the cache servers become unavailable (e.g., go offline).
  • cache servers 50 which may simply be peers or node computers on P2P system 10 , may be configured to forward email messages to other intermediate peers closer to the recipient's destination. Additionally or alternatively, if a given cache server is going to go offline, it may forward copies of its stored pending email messages/attachments and/or notify the P2P email system of the email's new location.
  • FIGS. 2A-E An example email communication between two node computers 20 and 30 , which are online simultaneously, is shown in FIGS. 2A-E .
  • email client application 22 submits an email message created by a first user to email agent 26 .
  • email agent 26 communicates with identity manager 44 to verify the recipient email address(es) contained in the email message, and to obtain one or more public keys corresponding to the verified email address(es). The public keys may be used by email agent 26 to encrypt the email message and/or any the message's attachments.
  • Identity manager 44 may take various forms.
  • identity manager 44 may be a central database running a hash table or similar data structure for relating email addresses to public keys.
  • identity manager 44 may be a distributed hash table (“DHT”), such as Content Addressable Network (“CAN”), Chord, Kademlia, Pastry, P-Grid, Tapestry or NeoNet, to name a few.
  • DHTs are a class of decentralized distributed systems that provide a lookup service similar to a hash table. They are well-known in the art, and therefore need not be described further here.
  • Email addresses such as the recipient email address may comprise the names of the hash table, and the value(s) corresponding to each name may be one or more public keys.
  • Email agents such as 36 each may possess private keys usable to decrypt messages encrypted with the one or more public keys.
  • sender email agent 26 may communicate with presence manager 46 to determine whether recipient 30 is online. If recipient 30 is online, sender email agent 26 may obtain recipient's network address (e.g., IP address).
  • recipient's network address e.g., IP address
  • Presence manager 46 may be a central server configured to track the presence of email clients and make that information available to email agents such as 26 and 36 .
  • Presence manager may be a central server or decentralized service, implementing various protocols, such as the Extensible Messaging and Presence Protocol (“XMPP”), for real-time or near-real-time presence information.
  • XMPP Extensible Messaging and Presence Protocol
  • Jabber Instant Messaging and Presence technology is based on XMPP, and may be used in some embodiments as presence manager 46 .
  • sender email agent 26 may transmit the email message and any attachments thereto directly to recipient email agent 36 in step 4 of FIG. 2D .
  • recipient email agent 36 may store the email message (which may remain encrypted) and attachments thereto in local email store 34 .
  • recipient email client 32 may communicate with local email store 34 to obtain all recipient's email messages, including the newest message just received, as well as any attachments thereto. If the messages are encrypted, email client 32 may use its private key, corresponding to the public key described above, to decrypt messages.
  • FIGS. 3A-H and the following discussion describe one possible way an email may be transmitted between sender 20 and recipient 30 under such a scenario.
  • step 100 shown in FIG. 3A similar to step 1 of FIG. 2A , email client application 22 submits an email message created by a user to email agent 26 . Similar to step 2 in FIG. 2B , in step 102 of FIG. 3B , email agent 26 connects to identity manager 44 to verify the recipient email addresses contained in the email message, and to obtain public keys corresponding to the verified email addresses. And again, in step 104 in FIG. 3C , sender email agent 26 communicates with presence manager 46 to determine whether recipient 30 is online.
  • sender email agent 24 may communicate the message body of the email message and any attachments having a size less than a predetermined amount to cache servers 50 residing on network 40 . In some embodiments, attachments having sizes greater than the predetermined amount may remain stored locally on sender 20 . In step 108 of FIG. 3E , sender email agent 26 may notify delivery manager 48 that there are pending messages stored in network 40 , as well as where those pending message may be located (e.g., on which cache servers 50 the message is cached).
  • delivery manager 48 may be a central server configured to store information regarding pending P2P email messages stored in network 40 .
  • delivery manager 48 may be a decentralized service such as a DHT or other similar distributed systems.
  • the names may be recipient email addresses, and the values associated therewith may include information necessary for recipient email agent 36 to obtain pending email messages from network 40 .
  • Such information may include address information associated with particular cache servers 50 having cached copies of the pending email.
  • the address information may be a network address of the particular cache servers 50 storing the pending emails, or, if each cache server is merely another node similar to 20 or 30 , the address information may be an email address associated with each node.
  • each email message or attachment may have a unique Universal Resource Name (“URN”).
  • URN Universal Resource Name
  • Recipient email agent 36 may be notified of any URNs associated with email messages or attachments destined for recipient 30 .
  • a delivery manager 48 implementing a DHT may use URNs related to pending email messages and attachments as names, and the value(s) associated with each URN may be a Universal Resource Locator (“URL”).
  • the URL may indicate where the email message/attachment identified by a URN may be found, as well as what method may be used to obtain the message/attachment (e.g, ftp://www.yin.comlattachment.jpg indicates that the file ‘attachment.jpg’ may be obtained from the domain yin.com using the ftp protocol).
  • recipient email agent 36 may communicate with delivery manager 48 to determine whether there are pending email messages on network 40 which are intended for recipient 30 and to identify one or more cache servers 50 where those messages are located. In some embodiments, recipient email agent 36 may next communicate with presence manager 44 to determine which of the identified nodes are currently online and those nodes' network addresses.
  • recipient local email store 34 may communicate with the identified nodes of the cache servers 50 to retrieve message bodies and attachments having a size less than the predetermined amount described above.
  • Attachments larger than the predetermined size may be obtained from the original sender 30 , assuming sender 30 is currently online. If sender 20 is not currently online, recipient 30 may periodically query presence manager 46 so that when sender 20 comes back online, recipient 30 may then obtain the large attachment directly from sender 20 .
  • local email store 34 or email agent 36 may prioritize which emails/attachments will be retrieved first.
  • an email client 32 may provide an interface for a user to edit contacts and sort them by various criterion (e.g., degrees of separation of friendship, age, etc.). Using this priority information, email client 32 or agent 36 may retrieve emails/attachments in the order of which its contacts have been sorted by the user. This priority information may be synchronized with contact store 49 when convenient.
  • recipient email client 32 When the user of recipient device wishes to read the received message(s), he or she may use recipient email client 32 to view email messages, including newly received messages, stored in local email store 34 in step 108 of FIG. 3H .
  • sender 20 may be configured to verify that recipient 30 received the email address. For instance, recipient email agent 36 may send an acknowledgement to sender 20 once recipient local email store 34 has received and stored the entirety of the email and any attachments thereto. Additionally or alternatively, Sender 20 may query recipient 30 to determine whether recipient 30 received the message. In some embodiments, recipient 30 may notify one of the services in decentralized distributed services 42 (e.g., delivery manager 48 ) that a message having a particular URN has been delivered. In such a case, sender 20 may verify that the message was received by communicating with the services 42 .
  • decentralized distributed services 42 e.g., delivery manager 48
  • an advertiser 62 of a particular interest may communicate with decentralized distributed services 42 to upload advertisement information, which may include metadata such as keywords (e.g., kayak) as well as advertising emails and/or attachments.
  • Email client 22 may include an interface including a list 60 of selectable interests. A user of email client 22 may choose one or more interests from list 60 in step 202 , and those choices may be communicated to decentralized distributed services 42 (e.g., to delivery manager 48 ) in step 204 .
  • email agent 26 may “pull” down the advertisements uploaded by advertiser 62 in step 200 . Note that because sender 20 indicated interest in kayaks, the email sent in step 206 is not unsolicited.
  • advertisers such as 62 may be charged a fee for each of their advertisement emails “pulled” from the system 10 .
  • a ratings system similar to those used in television e.g., Nielsen ratings, which are based on the habits of home TV viewers
  • a user who is away from her computer containing her P2P emails may nevertheless wish to access those emails.
  • a webmail interface which may comprise a HTML page which the user may access with a web browser.
  • the user may enter her login information (e.g., a username and password), and upon successful authentication, the webpage may direct the user's web browser to a second webpage which allows the user to view, manipulate, and create/send new email messages.
  • This second web page may obtain email data from and interface with the same mail server (containing the user's mailbox) which the user would normally log into with her local computer.
  • Webmail access similarly may be possible in some embodiments of the disclosed P2P email system 10 .
  • a user may be away from her computer 20 , but may wish to access email on her local email store 24 using a remote computer 70 .
  • a central server or one of the decentralized distributed services 42 may include a webmail service.
  • the user may connect to the webmail service executing on decentralized distributed services 42 and provide login credentials to a login webpage.
  • the user may be redirected to a second webpage giving the user email access.
  • the second webpage may communicate with the user's local email store 24 through a secure tunnel 72 to the user's computer 20 .
  • one of the decentralized distributed services may be identified as a mail exchanger (MX) in a DNS.
  • MX mail exchanger
  • the Gateway server therefore may receive email messages/attachments sent from traditional email systems, destined for a recipient residing on the disclosed P2P email system 10 , and communicate those messages to the appropriate recipients using the above-described methods (depending on whether the user is online or offline).
  • identity manager 44 may be configured with an index of domains that are part of P2P email system 10 .
  • identity manager 44 may determine whether the recipient email address(es) are within the P2P email system 10 . If so, the process may proceed as described above. If a recipient email address is destined for an outside domain unrelated to the P2P email system 10 , however, sender 20 may be required to forward the email and any attachments to the gateway server for delivery to the outside domain.
  • the P2P email system 10 may provide efficient attachment distribution.
  • the P2P email system 10 may determine the URLs of attachments and make those URLs available through decentralized distributed services 42 . For instance, assume sender 20 sends an email message including a large attachment (i.e., too large to be stored on cache servers 50 ) to recipient 30 . Also assume recipient 30 is online simultaneously with sender 20 . The email received by recipient 30 may not include the large attachment, encoded using Base64 or otherwise.
  • the email received by recipient 30 may include a hyperlink (URL) to a location on sender 20 containing the large attachment, so that recipient 30 may initiate a connection to sender 20 and download the large attachment directly (e.g., using FTP, HTTP, BitTorrent, or other well-known transfer protocols).
  • the initiation of the file transfer may not require intervention by the user of recipient 30 .
  • recipient email client 32 may be configured to automatically initiate the transfer when the user opens the email or attachment.
  • a method for facilitating peer-to-peer message exchange comprising the steps of: implementing a plurality of node computers in selective communication with one another, thereby forming a network, each of said node computers configured for sending an at least one message to a select at least one of the other node computers; implementing an at least one cache server in selective communication with the node computers and configured for temporarily storing at least a portion of the at least one message when the node computer of an at least one receiving user of said at least one message is not online; and upon a sending user of a first one of the node computers desiring to send a message, including any file attachments thereto, to an at least one receiving user of another one of the node computers: determining whether the node computer of each of the at least one receiving user is online; for each of the at least one receiving user, upon determining that the node computer of said receiving user is online: transmitting the message and any file attachments thereto directly to the online node computer of said receiving user; and upon receipt, storing the message
  • step of retrieving and storing the message and any file attachments thereto further comprises the steps of: retrieving from at least one of the at least one cache server and the online node computer of at least one other receiving user the message and any file attachments thereto, having a size less than the predefined maximum size, and storing said message and file attachments in memory on the node computer of said receiving user; upon determining that the node computer of the sending user is online, retrieving from the node computer of the sending user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user; and upon determining that the node computer of the sending user is not online, retrieving from the at least one online node computer of another receiving user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user.
  • step of implementing an at least one cache server in selective communication with each node computer further comprises the step of implementing an at least one cache server in memory on at least one of the node computers.
  • a method for facilitating peer-to-peer message exchange comprising the steps of: implementing a plurality of node computers in selective communication with one another, thereby forming a network, each of said node computers configured for sending an at least one message to a select at least one of the other node computers; implementing an at least one cache server in selective communication with the node computers and configured for temporarily storing at least a portion of the at least one message when the node computer of an at least one receiving user of said at least one message is not online; and upon a sending user of a first one of the node computers desiring to send a message, including any file attachments thereto, to an at least one receiving user of another one of the node computers: determining whether the node computer of each of the at least one receiving user is online; for each of the at least one receiving user, upon determining that the node computer of said receiving user is online: transmitting the message and any file attachments thereto directly to the online node computer of said receiving user; and upon receipt, storing the message
  • a system for facilitating peer-to-peer message exchange between a sending user and an at least one receiving user comprising: a plurality of node computers in selective communication with one another, thereby forming a network, each of said node computers configured for sending an at least one message to a select at least one of the other node computers; and an at least one cache server in selective communication with the node computers and configured for temporarily storing at least a portion of the at least one message when the node computer of an at least one receiving user of said at least one message is not online; wherein, upon the sending user of a first one of the node computers desiring to send a message, including any file attachments thereto, to the at least one receiving user of another one of the node computers, said node computers are configured for: determining whether the node computer of each of the at least one receiving user is online; for each of the at least one receiving user, upon determining that the node computer of said receiving user is online: transmitting the message and any file attachments thereto directly to the online no
  • the system according to embodiments 12-13 further comprising: an identity manager in selective communication with each node computer and configured for storing a network address of each user of the node computers along with associated encryption keys; a presence manager in selective communication with each node computer and configured for monitoring the online status of each node computer; a delivery manager in selective communication with each node computer and configured for monitoring the locations of any messages and associated file attachments thereto that are pending delivery to the node computers of one or more receiving users; and a contact store in selective communication with each node computer and configured for storing contact information related to each node computer and the associated users thereof.
  • node computers are further configured for, upon the sending user of the first one of the node computers desiring to send a message, including any file attachments thereto, to be received by the at least one receiving user of at least one of the other node computers, obtaining from the identity manager an at least one encryption key associated with the network address of each of the at least one receiving user for use in encrypting the message and any file attachments thereto.
  • node computers are further configured for, upon determining that a given node computer of a receiving user is not online: notifying the delivery manager of the existence and respective locations of the pending message and any file attachments thereto; and querying the presence manager to determine which of the at least one cache server and node computer storing the message and any file attachments thereto is currently online.
  • node computers are further configured for: retrieving from at least one of the at least one cache server and the online node computer of at least one other receiving user the message and any file attachments thereto, having a size less than the predefined maximum size, and storing said message and file attachments in memory on the node computer of said receiving user; upon determining that the node computer of the sending user is online, retrieving from the node computer of the sending user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user; and upon determining that the node computer of the sending user is not online, retrieving from the at least one online node computer of another receiving user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user.
  • node computers are further configured for, upon receipt of the message and any file attachments thereto, sending an acknowledgement receipt message to the node computer of the sending user.
  • node computers are further configured for automatically forwarding the message and any file attachments thereto from a first one of the cache servers to an at least one further one of the cache servers deemed to be relatively closer to the at least one node computer of the at least one receiving user.
  • node computers are further configured for, upon a one of the cache servers going offline, automatically forwarding any pending messages and file attachments thereto stored by said cache server to an at least one other online cache server.
  • logic code programs, modules, processes, methods, and the order in which the respective elements of each method are performed are purely exemplary. Depending on the implementation, they may be performed in any order or in parallel, unless indicated otherwise in the present disclosure. Further, the logic code is not related, or limited to any particular programming language, and may comprise one or more modules that execute on one or more processors in a distributed, non-distributed, or multiprocessing environment.
  • the methods as described above may be used in the fabrication of integrated circuit chips.
  • the resulting integrated circuit chips can be distributed by the fabricator in raw wafer form (that is, as a single wafer that has multiple unpackaged chips), as a bare die, or in a packaged form.
  • the chip is mounted in a single chip package (such as a plastic carrier, with leads that are affixed to a motherboard or other higher level carrier) or in a multi-chip package (such as a ceramic carrier that has either or both surface interconnections or buried interconnections).
  • the chip is then integrated with other chips, discrete circuit elements, and/or other signal processing devices as part of either (a) an intermediate product, such as a motherboard, or (b) an end product.
  • the end product can be any product that includes integrated circuit chips, ranging from toys and other low-end applications to advanced computer products having a display, a keyboard or other input device, and a central processor.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A peer-to-peer email system and methods are provided for distributed email distribution, prevention of SPAM, and efficient email storage. Each email client also serves as a node in the peer-to-peer system, relaying email messages and/or attachments. Large attachments may be transmitted directly from sender to receiver, and if the receiver is not online at the time the sender sends the attachment, the receiver can request the attachment from the sender at a later time.

Description

CROSS REFERENCE TO RELATED APPLICATIONS
This is a continuation application of a prior filed and currently pending application having Ser. No. 13/586,730 and a filing date of Aug. 15, 2012.
This application claims priority and is entitled to the priority date of U.S. non-provisional application Ser. No. 13/586,730, filed on Aug. 15, 2012 (U.S. Pat. No. 9,166,937), which is a continuation of U.S. non-provisional application Ser. No. 12/276,114, filed on Nov. 21, 2008, now abandoned, which claims priority and is entitled to the filing date of U.S. provisional application Ser. No. 60/989,774, filed on Nov. 21, 2007. The contents of the aforementioned applications are incorporated by reference herein.
BACKGROUND
Existing email systems may be centrally controlled. Simple Mail Transport Protocol (“SMTP”) is the de facto standard used on the internet today. A first SMTP server (e.g., mail.yin.com) may receive email messages from SMTP clients (e.g., Microsoft® Outlook, Mozilla® Thunderbird) executing on computers in the first SMTP server's domain. The email messages may include one or more recipient email addresses (e.g., john @yang.net). The first SMTP server may route the received messages to a second SMTP server on the intended recipient's domain (e.g., mail.yang.net) using known systems such as the domain name system (“DNS”). After receiving the email message, the second SMTP server may deliver the email messages to the intended recipient's mailbox, which may be stored on the second SMTP server and made available to the intended recipient over the network.
SMTP servers may be configured to restrict the size of attachments which may be sent with an email message. Other SMTP servers may limit the amount of storage space (i.e., the size of a mailbox) allocated to a user to store emails and attachments. Still other SMTP servers may not protect or offer the capability of protecting emails and attachments associated therewith from malicious or otherwise unintended recipients, either locally or while in transit over a computer network.
In addition to the above, unsolicited advertising emails (“SPAM”) are ubiquitous on the Internet. It is estimated by some that as of 2007, 90 billion SPAM messages are sent every day, and that so-called “abusive email” accounts for up to 85% of incoming mail in a given email inbox.
Finally, existing email systems exhibit various inefficiencies. For instance, centralized email server farms are estimated to consume over two billion dollars' worth of energy annually around the world. In addition, current methods of encoding attachments involve the use of base64, which encodes attachments as 7-bit representations, rather than traditional 8-bit. Base64 introduces approximately 30% of overhead to each attachment sent. Some estimate that attachments make up 80% of email traffic on the Internet. CPU cycles are also required to perform this encoding on the sending user's computer, as well as perform the decoding on the recipient user's computer.
Aspects of the present invention fulfill these needs and provide further related advantages as described below.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings illustrate aspects of the present invention. In such drawings:
FIG. 1 depicts an example email system, in accordance with at least one embodiment;
FIGS. 2A-E depict an email transmission on a system where the sender and the intended recipient are both online simultaneously, in accordance with at least one embodiment;
FIGS. 3A-H depict an email transmission on a system where the intended recipient is offline, in accordance with at least one embodiment;
FIG. 4 depicts an example method of preventing unsolicited emails, in accordance with at least one embodiment; and
FIG. 5 depicts a computer using webmail from a remote location to obtain a user's email from his or her computer, in accordance with at least one embodiment.
The above described drawing figures illustrate aspects of the invention in at least one of its exemplary embodiments, which are further defined in detail in the following description. Features, elements, and aspects of the invention that are referenced by the same numerals in different figures represent the same, equivalent, or similar features, elements, or aspects, in accordance with one or more embodiments.
DETAILED DESCRIPTION OF VARIOUS EMBODIMENTS
A Peer-to-Peer (“P2P”) email and social networking system is provided for use by a plurality of users to exchange emails and attachments. Such a system may be controlled by one or more central servers, or it may be controlled by decentralized services distributed over a mesh network. Such a mesh network may comprise a plurality of node computers, each running a P2P email client according to the present disclosure. Node computers may be alternatively referred to as “peers.” Emails may be stored in mailboxes residing on each node, rather than centrally located. The system may encrypt emails during transmission, and the emails may remain encrypted while stored at each node computer.
In some embodiments, the system may allow the user of each node computer to configure her email client with the user's interests (e.g., kayaking). Those interests may be communicated to a central server or decentralized distributed service, where they may be associated with the user's email address, so that potential advertisers may search by interest type, and send solicited emails to users associated with the searched-for interest types.
In other embodiments, the system may be configured to provide remote access to the user's local email when the user is away from her local computer. Such access may be provided via a webmail webpage interfacing via a secure tunnel to the user's local email store.
FIG. 1 depicts an example P2P email system 10 comprising node computers such as sender 20 and recipient 30. Sender 20 may be a computer controlled by a first user intending to send an email message to a recipient 30. Recipient 30 likewise may be a computer controlled by a second user who is the intended recipient of the email message. Sender 20 and recipient 30 may be connected by a network 40. Sender 20 may include an email client 22, a local email store 24, and an email agent 26. Recipient 30 likewise may include an email client 32, a local email store 34, and an email agent 36.
Network 40 may be a local or wide-area computer network, including the Internet. The P2P email system 10 may be controlled by components on network 40, such as decentralized distributed services 42 including identity manager 44, presence manager 46, delivery manager 48, and contact store 49, as well as cache servers 50. The distributed services 42 will be described in further detail below. While decentralized distributed services 42 are shown having the four components 44, 46, 48 and 49 as being separate, these components may alternatively reside on a single server, and there may be more than one server hosting one or more of these services. Moreover, additional services which are not shown (e.g., a gateway server for sending emails to traditional email domains) may also be included.
Email clients 22 and 32 may include user interfaces resembling traditional email clients (e.g., Outlook, Thunderbird), and may be configured to allow a user to draft, send and receive P2P emails. Email clients 22 and 32 may further include interfaces allowing a user to select interests (e.g., kayaking, dating), which may be communicated to decentralized distributed services 42 so that potential advertisers may communicate solicited emails to clients 22 and 32, as will be discussed further below.
Local email stores 24 and 34 may be portions of memory (e.g., on a local hard drive) which may be used to store email messages and associated attachments. In other words, local email stores 24 and 34 may serve similar roles as mailboxes on traditional SMTP servers. Messages stored in local email stores 24 and 34 may be encrypted. The amount of space allocated to a user may be configured, and in some embodiments may be limited only by the computer's storage capabilities. In addition to emails and attachments, local mail stores 24 and 34 may store interest information (a.k.a. user metadata), user contacts (e.g., the user's friends residing on P2P email system and elsewhere), user profiles (e.g., photos available for viewing, whom may view the photos, personal information and to whom it is available), group membership (e.g., open or closed groups of users of P2P email system 10 having common interests/metadata/contacts) or the like. Interest information, contacts, profiles and other similar information may be configured by a user using email clients such as 22 or 32.
Email agents 26 and 36 may be processes executing on node computers such as sender 20 or recipient 30 forming the P2P network. While a computer such as sender 20 or recipient 30 is connected to network 40 and is executing its email agent (26 or 36), that computer may be considered ‘online’ for purposes of the P2P network and this discussion.
Contact store 49 may be a central server or servers, or it may be a service distributed among various nodes in the P2P email system 10. It may contain information allowing peers on P2P email system 10 to locate other peers, including information similar to that stored in local email stores described above like interest information, contacts, metadata, group membership, and the like. Peers may be searched at contact store 49 using various search values, such as interests, group membership, friendship networks, personal profiles, and the like. In some embodiments, users may synchronize information stored in their local email stores 24, 34 such as metadata, profiles, and contacts with information contained in contact store 49. In other embodiments where contact store 49 is a service distributed among various nodes, there may be a central contact store (not shown) which is configured to synchronize all nodes on which contact store 49 is contained.
Cache servers 50 may comprise one or more computers on network 40 which may be used as intermediate points in email communications between computers such as sender 20 and recipient 30. Cache servers 50 may be configured to cache at least a portion of email messages, as well as attachments thereto. In some embodiments, each cache server may be a node computer, similar to sender 20 or receiver 30, forming another peer on the P2P system. Additionally or alternatively, cache servers 50 may be specialized computers maintained specifically for the purpose of caching emails. In some embodiments, cache servers may only cache attachments having a size smaller than a predetermined size (e.g., <50 Megabytes).
A given email message in transition between sender 20 and recipient 30 may be stored at a number of cache servers 50 while awaiting delivery, providing redundancy and high availability of the email message to recipient 30 in case some of the cache servers become unavailable (e.g., go offline). Moreover, cache servers 50, which may simply be peers or node computers on P2P system 10, may be configured to forward email messages to other intermediate peers closer to the recipient's destination. Additionally or alternatively, if a given cache server is going to go offline, it may forward copies of its stored pending email messages/attachments and/or notify the P2P email system of the email's new location.
The P2P email system 10 will now be explained by example. An example email communication between two node computers 20 and 30, which are online simultaneously, is shown in FIGS. 2A-E. In step 1 of FIG. 2A, email client application 22 submits an email message created by a first user to email agent 26. In step 2 of FIG. 2B, email agent 26 communicates with identity manager 44 to verify the recipient email address(es) contained in the email message, and to obtain one or more public keys corresponding to the verified email address(es). The public keys may be used by email agent 26 to encrypt the email message and/or any the message's attachments.
Identity manager 44 may take various forms. In some embodiments, identity manager 44 may be a central database running a hash table or similar data structure for relating email addresses to public keys. In other embodiments, identity manager 44 may be a distributed hash table (“DHT”), such as Content Addressable Network (“CAN”), Chord, Kademlia, Pastry, P-Grid, Tapestry or NeoNet, to name a few. DHTs are a class of decentralized distributed systems that provide a lookup service similar to a hash table. They are well-known in the art, and therefore need not be described further here. Email addresses such as the recipient email address may comprise the names of the hash table, and the value(s) corresponding to each name may be one or more public keys. Email agents such as 36 each may possess private keys usable to decrypt messages encrypted with the one or more public keys.
In step 3 of FIG. 2C, sender email agent 26 may communicate with presence manager 46 to determine whether recipient 30 is online. If recipient 30 is online, sender email agent 26 may obtain recipient's network address (e.g., IP address).
Presence manager 46 may be a central server configured to track the presence of email clients and make that information available to email agents such as 26 and 36. Presence manager may be a central server or decentralized service, implementing various protocols, such as the Extensible Messaging and Presence Protocol (“XMPP”), for real-time or near-real-time presence information. Jabber Instant Messaging and Presence technology is based on XMPP, and may be used in some embodiments as presence manager 46.
Once sender email agent 26 has obtained the network address of recipient 30 from presence manager 46, sender email agent 26 may transmit the email message and any attachments thereto directly to recipient email agent 36 in step 4 of FIG. 2D. When recipient email agent 36 receives the email message, in step 5 of FIG. 2D, it may store the email message (which may remain encrypted) and attachments thereto in local email store 34.
When the user of recipient 30 executes email client 32 to check her email, in step 6 of FIG. 2E, recipient email client 32 may communicate with local email store 34 to obtain all recipient's email messages, including the newest message just received, as well as any attachments thereto. If the messages are encrypted, email client 32 may use its private key, corresponding to the public key described above, to decrypt messages.
The above discussion describes an email transmission where both sender 20 and recipient 30 are online simultaneously. However, there is no guarantee that recipient 30 will be online at the moment sender 30 transmits an email message. FIGS. 3A-H and the following discussion describe one possible way an email may be transmitted between sender 20 and recipient 30 under such a scenario.
In step 100 shown in FIG. 3A, similar to step 1 of FIG. 2A, email client application 22 submits an email message created by a user to email agent 26. Similar to step 2 in FIG. 2B, in step 102 of FIG. 3B, email agent 26 connects to identity manager 44 to verify the recipient email addresses contained in the email message, and to obtain public keys corresponding to the verified email addresses. And again, in step 104 in FIG. 3C, sender email agent 26 communicates with presence manager 46 to determine whether recipient 30 is online.
In the previous example, recipient 30 was online, and therefore available to receive the email message and attachments directly from sender 20. However, in this example, recipient 30 is offline. Therefore, in step 106 of FIG. 3D, sender email agent 24 may communicate the message body of the email message and any attachments having a size less than a predetermined amount to cache servers 50 residing on network 40. In some embodiments, attachments having sizes greater than the predetermined amount may remain stored locally on sender 20. In step 108 of FIG. 3E, sender email agent 26 may notify delivery manager 48 that there are pending messages stored in network 40, as well as where those pending message may be located (e.g., on which cache servers 50 the message is cached).
In some embodiments, delivery manager 48 may be a central server configured to store information regarding pending P2P email messages stored in network 40. In other embodiments, delivery manager 48 may be a decentralized service such as a DHT or other similar distributed systems.
In some embodiments where delivery manager 48 is a DHT, the names may be recipient email addresses, and the values associated therewith may include information necessary for recipient email agent 36 to obtain pending email messages from network 40. Such information may include address information associated with particular cache servers 50 having cached copies of the pending email. The address information may be a network address of the particular cache servers 50 storing the pending emails, or, if each cache server is merely another node similar to 20 or 30, the address information may be an email address associated with each node.
In other embodiments, each email message or attachment may have a unique Universal Resource Name (“URN”). Recipient email agent 36 may be notified of any URNs associated with email messages or attachments destined for recipient 30. A delivery manager 48 implementing a DHT may use URNs related to pending email messages and attachments as names, and the value(s) associated with each URN may be a Universal Resource Locator (“URL”). The URL may indicate where the email message/attachment identified by a URN may be found, as well as what method may be used to obtain the message/attachment (e.g, ftp://www.yin.comlattachment.jpg indicates that the file ‘attachment.jpg’ may be obtained from the domain yin.com using the ftp protocol).
Accordingly, when recipient 30 comes online, in step 110 of FIG. 3F, recipient email agent 36 may communicate with delivery manager 48 to determine whether there are pending email messages on network 40 which are intended for recipient 30 and to identify one or more cache servers 50 where those messages are located. In some embodiments, recipient email agent 36 may next communicate with presence manager 44 to determine which of the identified nodes are currently online and those nodes' network addresses.
Next, in step 112 of FIG. 3G, recipient local email store 34 (or alternatively, recipient email agent 36) may communicate with the identified nodes of the cache servers 50 to retrieve message bodies and attachments having a size less than the predetermined amount described above.
Attachments larger than the predetermined size may be obtained from the original sender 30, assuming sender 30 is currently online. If sender 20 is not currently online, recipient 30 may periodically query presence manager 46 so that when sender 20 comes back online, recipient 30 may then obtain the large attachment directly from sender 20.
In some embodiments, where local email store 34 or email agent 36 must download multiple emails from cache servers 50, it may prioritize which emails/attachments will be retrieved first. For instance, an email client 32 may provide an interface for a user to edit contacts and sort them by various criterion (e.g., degrees of separation of friendship, age, etc.). Using this priority information, email client 32 or agent 36 may retrieve emails/attachments in the order of which its contacts have been sorted by the user. This priority information may be synchronized with contact store 49 when convenient.
When the user of recipient device wishes to read the received message(s), he or she may use recipient email client 32 to view email messages, including newly received messages, stored in local email store 34 in step 108 of FIG. 3H.
In some embodiments, sender 20 may be configured to verify that recipient 30 received the email address. For instance, recipient email agent 36 may send an acknowledgement to sender 20 once recipient local email store 34 has received and stored the entirety of the email and any attachments thereto. Additionally or alternatively, Sender 20 may query recipient 30 to determine whether recipient 30 received the message. In some embodiments, recipient 30 may notify one of the services in decentralized distributed services 42 (e.g., delivery manager 48) that a message having a particular URN has been delivered. In such a case, sender 20 may verify that the message was received by communicating with the services 42.
In the P2P email system disclosed herein, some embodiments may be configured to prevent unsolicited email and/or provide users with emails related to topics of interest. Turning to FIG. 4, in step 200, an advertiser 62 of a particular interest (e.g., a kayak manufacturer) may communicate with decentralized distributed services 42 to upload advertisement information, which may include metadata such as keywords (e.g., kayak) as well as advertising emails and/or attachments. Email client 22 may include an interface including a list 60 of selectable interests. A user of email client 22 may choose one or more interests from list 60 in step 202, and those choices may be communicated to decentralized distributed services 42 (e.g., to delivery manager 48) in step 204. In step 206, email agent 26 may “pull” down the advertisements uploaded by advertiser 62 in step 200. Note that because sender 20 indicated interest in kayaks, the email sent in step 206 is not unsolicited.
In some embodiments, advertisers such as 62 may be charged a fee for each of their advertisement emails “pulled” from the system 10. Additionally or alternatively, a ratings system similar to those used in television (e.g., Nielsen ratings, which are based on the habits of home TV viewers) may be implemented to ascertain how much a given advertisement is “pulled,” for purposes of charging advertisers such as 62.
In another aspect, a user who is away from her computer containing her P2P emails may nevertheless wish to access those emails. In traditional email systems (e.g., SMTP), such a user may have access to a webmail interface, which may comprise a HTML page which the user may access with a web browser. The user may enter her login information (e.g., a username and password), and upon successful authentication, the webpage may direct the user's web browser to a second webpage which allows the user to view, manipulate, and create/send new email messages. This second web page may obtain email data from and interface with the same mail server (containing the user's mailbox) which the user would normally log into with her local computer.
Webmail access similarly may be possible in some embodiments of the disclosed P2P email system 10. Referring to FIG. 5, a user may be away from her computer 20, but may wish to access email on her local email store 24 using a remote computer 70. A central server or one of the decentralized distributed services 42 (such as delivery manager 48) may include a webmail service. In step 300, the user may connect to the webmail service executing on decentralized distributed services 42 and provide login credentials to a login webpage. Upon successful authentication, the user may be redirected to a second webpage giving the user email access. Instead of communicating with the user's mailbox on a central SMTP server, however, in step 302, the second webpage may communicate with the user's local email store 24 through a secure tunnel 72 to the user's computer 20.
Although the above examples only describe the exchange of email messages between two node computers on P2P system 10, those skilled in the art will understand that communications may occur between any number of node computers. Moreover, communications may occur between a node computer on P2P system 10 and a traditional email system (e.g., hotmail, gmail, etc.).
For example, one of the decentralized distributed services (e.g., a separate gateway server which is not shown) may be identified as a mail exchanger (MX) in a DNS. The Gateway server therefore may receive email messages/attachments sent from traditional email systems, destined for a recipient residing on the disclosed P2P email system 10, and communicate those messages to the appropriate recipients using the above-described methods (depending on whether the user is online or offline).
Likewise, if a user on a node computer of P2P email system 10 desires to send an email message to an outside traditional email address, the user may communicate the message and any attachments to the gateway server. The gateway server may forward the message to the appropriate SMTP server using MX records in the DNS. In some embodiments, identity manager 44 may be configured with an index of domains that are part of P2P email system 10. When sender 20 verifies the email address, such as in step 2 in FIG. 2B or step 102 in FIG. 3B, identity manager 44 may determine whether the recipient email address(es) are within the P2P email system 10. If so, the process may proceed as described above. If a recipient email address is destined for an outside domain unrelated to the P2P email system 10, however, sender 20 may be required to forward the email and any attachments to the gateway server for delivery to the outside domain.
In another aspect of the disclosure, the P2P email system 10 may provide efficient attachment distribution. In some instances, instead of using base64 to encode attachments to 7-bit representations, the P2P email system 10 may determine the URLs of attachments and make those URLs available through decentralized distributed services 42. For instance, assume sender 20 sends an email message including a large attachment (i.e., too large to be stored on cache servers 50) to recipient 30. Also assume recipient 30 is online simultaneously with sender 20. The email received by recipient 30 may not include the large attachment, encoded using Base64 or otherwise. Instead, the email received by recipient 30 may include a hyperlink (URL) to a location on sender 20 containing the large attachment, so that recipient 30 may initiate a connection to sender 20 and download the large attachment directly (e.g., using FTP, HTTP, BitTorrent, or other well-known transfer protocols). The initiation of the file transfer may not require intervention by the user of recipient 30. Instead, recipient email client 32 may be configured to automatically initiate the transfer when the user opens the email or attachment.
Aspects of the present specification may also be described as follows:
1. A method for facilitating peer-to-peer message exchange, the method comprising the steps of: implementing a plurality of node computers in selective communication with one another, thereby forming a network, each of said node computers configured for sending an at least one message to a select at least one of the other node computers; implementing an at least one cache server in selective communication with the node computers and configured for temporarily storing at least a portion of the at least one message when the node computer of an at least one receiving user of said at least one message is not online; and upon a sending user of a first one of the node computers desiring to send a message, including any file attachments thereto, to an at least one receiving user of another one of the node computers: determining whether the node computer of each of the at least one receiving user is online; for each of the at least one receiving user, upon determining that the node computer of said receiving user is online: transmitting the message and any file attachments thereto directly to the online node computer of said receiving user; and upon receipt, storing the message and any file attachments thereto in memory on the online node computer of said receiving user; and for each of the at least one receiving user, upon determining that the node computer of said receiving user is not online: transmitting the message to at least one of the at least one cache server and the online node computer of at least one other receiving user for later retrieval; transmitting any file attachments thereto having a size less than a predefined maximum size to at least one of the at least one cache server and the online node computer of at least one other receiving user for later retrieval; storing any file attachments thereto having a size greater than the predefined maximum size in memory on the node computer of the sending user; upon the node computer of said receiving user subsequently going online, notifying said node computer of the existence and locations of the pending message and any file attachments thereto; and retrieving from at least one of the online node computer of the sending user, the at least one cache server and the online node computer of at least one other receiving user the message and any file attachments thereto and storing said message and file attachments in memory on the node computer of said receiving user.
2. The method according to embodiment 1, further comprising the steps of: implementing an email client in memory on each node computer, said email client configured for allowing a user to draft, send and receive messages; implementing a local email store in memory on each node computer, said email store configured for storing messages and any file attachments thereto; and implementing an email agent in memory on each node computer, each said email agent configured for communicating with email agents of other node computers, thereby allowing for the transmission of the messages and any file attachments thereto directly between the email clients of two or more node computers.
3. The method according to embodiments 1-2, further comprising the steps of: implementing an identity manager in selective communication with each node computer and configured for storing a network address of the user of each node computer along with associated encryption keys; implementing a presence manager in selective communication with each node computer and configured for monitoring the online status of each node computer; implementing a delivery manager in selective communication with each node computer and configured for monitoring the locations of any messages and associated file attachments thereto that are pending delivery to the node computers of one or more receiving users; and implementing a contact store in selective communication with each node computer and configured for storing contact information related to each node computer and the associated users thereof.
4. The method according to embodiments 1-3, further comprising the step of, upon the sending user desiring to send a message, including any file attachments thereto, to the at least one receiving user, obtaining from the identity manager an at least one encryption key associated with the network address of each of the at least one receiving user for use in encrypting the message and any file attachments thereto.
5. The method according to embodiments 1-4, further comprising the steps of, for each receiving user, upon determining that the node computer of said receiving user is not online: notifying the delivery manager of the existence and respective locations of the pending message and any file attachments thereto; and querying the presence manager to determine which of the at least one cache server and node computer storing the message and any file attachments thereto is currently online.
6. The method according to embodiments 1-5, wherein the step of retrieving and storing the message and any file attachments thereto further comprises the steps of: retrieving from at least one of the at least one cache server and the online node computer of at least one other receiving user the message and any file attachments thereto, having a size less than the predefined maximum size, and storing said message and file attachments in memory on the node computer of said receiving user; upon determining that the node computer of the sending user is online, retrieving from the node computer of the sending user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user; and upon determining that the node computer of the sending user is not online, retrieving from the at least one online node computer of another receiving user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user.
7. The method according to embodiments 1-6, further comprising the step of, upon receipt of the message and any file attachments thereto, sending an acknowledgement receipt message to the node computer of the sending user.
8. The method according to embodiments 1-7, further comprising the step of automatically forwarding the message and any file attachments thereto from a one of the cache servers to an at least one further one of the cache servers deemed to be relatively closer to the at least one node computer of the at least one receiving user.
9. The method according to embodiments 1-8, further comprising the step of, upon a one of the cache servers going offline, automatically forwarding any pending messages and file attachments thereto stored by said cache server to an at least one other online cache server.
10. The method according to embodiments 1-9, wherein the step of implementing an at least one cache server in selective communication with each node computer further comprises the step of implementing an at least one cache server in memory on at least one of the node computers.
11. A method for facilitating peer-to-peer message exchange, the method comprising the steps of: implementing a plurality of node computers in selective communication with one another, thereby forming a network, each of said node computers configured for sending an at least one message to a select at least one of the other node computers; implementing an at least one cache server in selective communication with the node computers and configured for temporarily storing at least a portion of the at least one message when the node computer of an at least one receiving user of said at least one message is not online; and upon a sending user of a first one of the node computers desiring to send a message, including any file attachments thereto, to an at least one receiving user of another one of the node computers: determining whether the node computer of each of the at least one receiving user is online; for each of the at least one receiving user, upon determining that the node computer of said receiving user is online: transmitting the message and any file attachments thereto directly to the online node computer of said receiving user; and upon receipt, storing the message and any file attachments thereto in memory on the online node computer of said receiving user; and for each of the at least one receiving user, upon determining that the node computer of said receiving user is not online: transmitting the message to at least one of the at least one cache server and the online node computer of at least one other receiving user for later retrieval; transmitting any file attachments thereto having a size less than a predefined maximum size to at least one of the at least one cache server and the online node computer of at least one other receiving user for later retrieval; storing any file attachments thereto having a size greater than the predefined maximum size in memory on the node computer of the sending user; upon the node computer of said receiving user subsequently going online, notifying said node computer of the existence and locations of the pending message and any file attachments thereto; retrieving from at least one of the at least one cache server and the online node computer of at least one other receiving user the message and any file attachments thereto, having a size less than the predefined maximum size, and storing said message and file attachments in memory on the node computer of said receiving user; upon determining that the node computer of the sending user is online, retrieving from the node computer of the sending user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user; and upon determining that the node computer of the sending user is not online, retrieving from the at least one online node computer of another receiving user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user.
12. A system for facilitating peer-to-peer message exchange between a sending user and an at least one receiving user, the system comprising: a plurality of node computers in selective communication with one another, thereby forming a network, each of said node computers configured for sending an at least one message to a select at least one of the other node computers; and an at least one cache server in selective communication with the node computers and configured for temporarily storing at least a portion of the at least one message when the node computer of an at least one receiving user of said at least one message is not online; wherein, upon the sending user of a first one of the node computers desiring to send a message, including any file attachments thereto, to the at least one receiving user of another one of the node computers, said node computers are configured for: determining whether the node computer of each of the at least one receiving user is online; for each of the at least one receiving user, upon determining that the node computer of said receiving user is online: transmitting the message and any file attachments thereto directly to the online node computer of said receiving user; and upon receipt, storing the message and any file attachments thereto in memory on the online node computer of said receiving user; and for each of the at least one receiving user, upon determining that the node computer of said receiving user is not online: transmitting the message to at least one of the at least one cache server and the online node computer of at least one other receiving user for later retrieval; transmitting any file attachments thereto having a size less than a predefined maximum size to at least one of the at least one cache server and the online node computer of at least one other receiving user for later retrieval; storing any file attachments thereto having a size greater than the predefined maximum size in memory on the node computer of the sending user; upon the node computer of said receiving user subsequently going online, notifying said node computer of the existence and locations of the pending message and any file attachments thereto; and retrieving from at least one of the online node computer of the sending user, the at least one cache server and the online node computer of at least one other receiving user the message and any file attachments thereto and storing said message and file attachments in memory on the node computer of said receiving user.
13. The system according to embodiment 12, further comprising: an email client in memory on each node computer, said email client configured for allowing a user to draft, send and receive messages; a local email store in memory on each node computer, said email store configured for storing messages and any file attachments thereto; and an email agent in memory on each node computer, each said email agent configured for communicating with email agents of other node computers, thereby allowing for the transmission of the messages and any file attachments thereto between the email clients of two or more node computers.
14. The system according to embodiments 12-13, further comprising: an identity manager in selective communication with each node computer and configured for storing a network address of each user of the node computers along with associated encryption keys; a presence manager in selective communication with each node computer and configured for monitoring the online status of each node computer; a delivery manager in selective communication with each node computer and configured for monitoring the locations of any messages and associated file attachments thereto that are pending delivery to the node computers of one or more receiving users; and a contact store in selective communication with each node computer and configured for storing contact information related to each node computer and the associated users thereof.
15. The system according to embodiments 12-14, wherein the node computers are further configured for, upon the sending user of the first one of the node computers desiring to send a message, including any file attachments thereto, to be received by the at least one receiving user of at least one of the other node computers, obtaining from the identity manager an at least one encryption key associated with the network address of each of the at least one receiving user for use in encrypting the message and any file attachments thereto.
16. The system according to embodiments 12-15, wherein the node computers are further configured for, upon determining that a given node computer of a receiving user is not online: notifying the delivery manager of the existence and respective locations of the pending message and any file attachments thereto; and querying the presence manager to determine which of the at least one cache server and node computer storing the message and any file attachments thereto is currently online.
17. The system according to embodiments 12-16, wherein the node computers are further configured for: retrieving from at least one of the at least one cache server and the online node computer of at least one other receiving user the message and any file attachments thereto, having a size less than the predefined maximum size, and storing said message and file attachments in memory on the node computer of said receiving user; upon determining that the node computer of the sending user is online, retrieving from the node computer of the sending user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user; and upon determining that the node computer of the sending user is not online, retrieving from the at least one online node computer of another receiving user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user.
18. The system according to embodiments 12-17, wherein the node computers are further configured for, upon receipt of the message and any file attachments thereto, sending an acknowledgement receipt message to the node computer of the sending user.
19. The system according to embodiments 12-18, wherein the node computers are further configured for automatically forwarding the message and any file attachments thereto from a first one of the cache servers to an at least one further one of the cache servers deemed to be relatively closer to the at least one node computer of the at least one receiving user.
20. The system according to embodiments 12-19, wherein the node computers are further configured for, upon a one of the cache servers going offline, automatically forwarding any pending messages and file attachments thereto stored by said cache server to an at least one other online cache server.
In closing, regarding the exemplary embodiments of the present invention as shown and described herein, it will be appreciated that a system and associated methods for facilitating peer-to-peer email exchange is disclosed. Because the principles of the invention may be practiced in a number of configurations beyond those shown and described, it is to be understood that the invention is not in any way limited by the exemplary embodiments, but is generally directed to a system and associated methods for facilitating peer-to-peer email exchange, and is able to take numerous forms to do so without departing from the spirit and scope of the invention.
Certain embodiments of the present invention are described herein, including the best mode known to the inventor(s) for carrying out the invention. Of course, variations on these described embodiments will become apparent to those of ordinary skill in the art upon reading the foregoing description. The inventor(s) expect skilled artisans to employ such variations as appropriate, and the inventor(s) intend for the present invention to be practiced otherwise than specifically described herein. Accordingly, this invention includes all modifications and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. Moreover, any combination of the above-described embodiments in all possible variations thereof is encompassed by the invention unless otherwise indicated herein or otherwise clearly contradicted by context.
Groupings of alternative embodiments, elements, or steps of the present invention are not to be construed as limitations. Each group member may be referred to and claimed individually or in any combination with other group members disclosed herein. It is anticipated that one or more members of a group may be included in, or deleted from, a group for reasons of convenience and/or patentability. When any such inclusion or deletion occurs, the specification is deemed to contain the group as modified thus fulfilling the written description of all Markush groups used in the appended claims.
Unless otherwise indicated, all numbers expressing a characteristic, item, quantity, parameter, property, term, and so forth used in the present specification and claims are to be understood as being modified in all instances by the term “about.” As used herein, the term “about” means that the characteristic, item, quantity, parameter, property, or term so qualified encompasses a range of plus or minus ten percent above and below the value of the stated characteristic, item, quantity, parameter, property, or term. Accordingly, unless indicated to the contrary, the numerical parameters set forth in the specification and attached claims are approximations that may vary. At the very least, and not as an attempt to limit the application of the doctrine of equivalents to the scope of the claims, each numerical indication should at least be construed in light of the number of reported significant digits and by applying ordinary rounding techniques. Notwithstanding that the numerical ranges and values setting forth the broad scope of the invention are approximations, the numerical ranges and values set forth in the specific examples are reported as precisely as possible. Any numerical range or value, however, inherently contains certain errors necessarily resulting from the standard deviation found in their respective testing measurements. Recitation of numerical ranges of values herein is merely intended to serve as a shorthand method of referring individually to each separate numerical value falling within the range. Unless otherwise indicated herein, each individual value of a numerical range is incorporated into the present specification as if it were individually recited herein.
Use of the terms “may” or “can” in reference to an embodiment or aspect of an embodiment also carries with it the alternative meaning of “may not” or “cannot.” As such, if the present specification discloses that an embodiment or an aspect of an embodiment may be or can be included as part of the inventive subject matter, then the negative limitation or exclusionary proviso is also explicitly meant, meaning that an embodiment or an aspect of an embodiment may not be or cannot be included as part of the inventive subject matter. In a similar manner, use of the term “optionally” in reference to an embodiment or aspect of an embodiment means that such embodiment or aspect of the embodiment may be included as part of the inventive subject matter or may not be included as part of the inventive subject matter. Whether such a negative limitation or exclusionary proviso applies will be based on whether the negative limitation or exclusionary proviso is recited in the claimed subject matter.
The terms “a,” “an,” “the” and similar references used in the context of describing the present invention (especially in the context of the following claims) are to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. Further, ordinal indicators—such as “first,” “second,” “third,” etc.—for identified elements are used to distinguish between the elements, and do not indicate or imply a required or limited number of such elements, and do not indicate a particular position or order of such elements unless otherwise specifically stated. All methods described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. The use of any and all examples, or exemplary language (e.g., “such as”) provided herein is intended merely to better illuminate the present invention and does not pose a limitation on the scope of the invention otherwise claimed. No language in the present specification should be construed as indicating any non-claimed element essential to the practice of the invention.
Specific embodiments disclosed herein may be further limited in the claims using consisting of or consisting essentially of language. When used in the claims, whether as filed or added per amendment, the transition term “consisting of” excludes any element, step, or ingredient not specified in the claims. The transition term “consisting essentially of” limits the scope of a claim to the specified materials or steps and those that do not materially affect the basic and novel characteristic(s). Embodiments of the present invention so claimed are inherently or expressly described and enabled herein.
All patents, patent publications, and other publications referenced and identified in the present specification are individually and expressly incorporated herein by reference in their entirety for the purpose of describing and disclosing, for example, the compositions and methodologies described in such publications that might be used in connection with the present invention. These publications are provided solely for their disclosure prior to the filing date of the present application. Nothing in this regard should be construed as an admission that the inventors are not entitled to antedate such disclosure by virtue of prior invention or for any other reason. All statements as to the date or representation as to the contents of these documents is based on the information available to the applicants and does not constitute any admission as to the correctness of the dates or contents of these documents.
It should be understood that the logic code, programs, modules, processes, methods, and the order in which the respective elements of each method are performed are purely exemplary. Depending on the implementation, they may be performed in any order or in parallel, unless indicated otherwise in the present disclosure. Further, the logic code is not related, or limited to any particular programming language, and may comprise one or more modules that execute on one or more processors in a distributed, non-distributed, or multiprocessing environment.
The methods as described above may be used in the fabrication of integrated circuit chips. The resulting integrated circuit chips can be distributed by the fabricator in raw wafer form (that is, as a single wafer that has multiple unpackaged chips), as a bare die, or in a packaged form. In the latter case, the chip is mounted in a single chip package (such as a plastic carrier, with leads that are affixed to a motherboard or other higher level carrier) or in a multi-chip package (such as a ceramic carrier that has either or both surface interconnections or buried interconnections). In any case, the chip is then integrated with other chips, discrete circuit elements, and/or other signal processing devices as part of either (a) an intermediate product, such as a motherboard, or (b) an end product. The end product can be any product that includes integrated circuit chips, ranging from toys and other low-end applications to advanced computer products having a display, a keyboard or other input device, and a central processor.
While aspects of the invention have been described with reference to at least one exemplary embodiment, it is to be clearly understood by those skilled in the art that the invention is not limited thereto. Rather, the scope of the invention is to be interpreted only in conjunction with the appended claims and it is made clear, here, that the inventor(s) believe that the claimed subject matter is the invention.

Claims (20)

What is claimed is:
1. A method for facilitating peer-to-peer message exchange, the method comprising the steps of:
implementing a plurality of node computers in selective communication with one another, thereby forming a network, each of said node computers configured for sending an at least one message to a select at least one of the other node computers;
implementing an at least one cache server in selective communication with the node computers and configured for temporarily storing at least a portion of the at least one message when the node computer of an at least one receiving user of said at least one message is not online; and
upon a sending user of a first one of the node computers desiring to send a message, including any file attachments thereto, to an at least one receiving user of another one of the node computers:
determining whether the node computer of each of the at least one receiving user is online;
for each of the at least one receiving user, upon determining that the node computer of said receiving user is online:
transmitting the message and any file attachments thereto directly to the online node computer of said receiving user; and
upon receipt, storing the message and any file attachments thereto in memory on the online node computer of said receiving user; and
for each of the at least one receiving user, upon determining that the node computer of said receiving user is not online:
transmitting the message to at least one of the at least one cache server and the online node computer of at least one other receiving user for later retrieval;
transmitting any file attachments thereto having a size less than a predefined maximum size to at least one of the at least one cache server and the online node computer of at least one other receiving user for later retrieval;
storing any file attachments thereto having a size greater than the predefined maximum size in memory on the node computer of the sending user;
upon the node computer of said receiving user subsequently going online, notifying said node computer of the existence and locations of the pending message and any file attachments thereto; and
retrieving from at least one of the online node computer of the sending user, the at least one cache server and the online node computer of at least one other receiving user the message and any file attachments thereto and storing said message and file attachments in memory on the node computer of said receiving user.
2. The method of claim 1, further comprising the steps of:
implementing an email client in memory on each node computer, said email client configured for allowing a user to draft, send and receive messages;
implementing a local email store in memory on each node computer, said email store configured for storing messages and any file attachments thereto; and
implementing an email agent in memory on each node computer, each said email agent configured for communicating with email agents of other node computers, thereby allowing for the transmission of the messages and any file attachments thereto directly between the email clients of two or more node computers.
3. The method of claim 1, further comprising the steps of:
implementing an identity manager in selective communication with each node computer and configured for storing a network address of the user of each node computer along with associated encryption keys;
implementing a presence manager in selective communication with each node computer and configured for monitoring the online status of each node computer;
implementing a delivery manager in selective communication with each node computer and configured for monitoring the locations of any messages and associated file attachments thereto that are pending delivery to the node computers of one or more receiving users; and
implementing a contact store in selective communication with each node computer and configured for storing contact information related to each node computer and the associated users thereof.
4. The method of claim 3, further comprising the step of, upon the sending user desiring to send a message, including any file attachments thereto, to the at least one receiving user, obtaining from the identity manager an at least one encryption key associated with the network address of each of the at least one receiving user for use in encrypting the message and any file attachments thereto.
5. The method of claim 3, further comprising the steps of, for each receiving user, upon determining that the node computer of said receiving user is not online:
notifying the delivery manager of the existence and respective locations of the pending message and any file attachments thereto; and
querying the presence manager to determine which of the at least one cache server and node computer storing the message and any file attachments thereto is currently online.
6. The method of claim 1, wherein the step of retrieving and storing the message and any file attachments thereto further comprises the steps of:
retrieving from at least one of the at least one cache server and the online node computer of at least one other receiving user the message and any file attachments thereto, having a size less than the predefined maximum size, and storing said message and file attachments in memory on the node computer of said receiving user;
upon determining that the node computer of the sending user is online, retrieving from the node computer of the sending user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user; and
upon determining that the node computer of the sending user is not online, retrieving from the at least one online node computer of another receiving user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user.
7. The method of claim 1, further comprising the step of, upon receipt of the message and any file attachments thereto, sending an acknowledgement receipt message to the node computer of the sending user.
8. The method of claim 1, further comprising the step of automatically forwarding the message and any file attachments thereto from a one of the cache servers to an at least one further one of the cache servers deemed to be relatively closer to the at least one node computer of the at least one receiving user.
9. The method of claim 1, further comprising the step of, upon a one of the cache servers going offline, automatically forwarding any pending messages and file attachments thereto stored by said cache server to an at least one other online cache server.
10. The method of claim 1, wherein the step of implementing an at least one cache server in selective communication with each node computer further comprises the step of implementing an at least one cache server in memory on at least one of the node computers.
11. A method for facilitating peer-to-peer message exchange, the method comprising the steps of:
implementing a plurality of node computers in selective communication with one another, thereby forming a network, each of said node computers configured for sending an at least one message to a select at least one of the other node computers;
implementing an at least one cache server in selective communication with the node computers and configured for temporarily storing at least a portion of the at least one message when the node computer of an at least one receiving user of said at least one message is not online; and
upon a sending user of a first one of the node computers desiring to send a message, including any file attachments thereto, to an at least one receiving user of another one of the node computers:
determining whether the node computer of each of the at least one receiving user is online;
for each of the at least one receiving user, upon determining that the node computer of said receiving user is online:
transmitting the message and any file attachments thereto directly to the online node computer of said receiving user; and
upon receipt, storing the message and any file attachments thereto in memory on the online node computer of said receiving user; and
for each of the at least one receiving user, upon determining that the node computer of said receiving user is not online:
transmitting the message to at least one of the at least one cache server and the online node computer of at least one other receiving user for later retrieval;
transmitting any file attachments thereto having a size less than a predefined maximum size to at least one of the at least one cache server and the online node computer of at least one other receiving user for later retrieval;
storing any file attachments thereto having a size greater than the predefined maximum size in memory on the node computer of the sending user;
upon the node computer of said receiving user subsequently going online, notifying said node computer of the existence and locations of the pending message and any file attachments thereto;
retrieving from at least one of the at least one cache server and the online node computer of at least one other receiving user the message and any file attachments thereto, having a size less than the predefined maximum size, and storing said message and file attachments in memory on the node computer of said receiving user;
upon determining that the node computer of the sending user is online, retrieving from the node computer of the sending user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user; and
upon determining that the node computer of the sending user is not online, retrieving from the at least one online node computer of another receiving user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user.
12. A system for facilitating peer-to-peer message exchange between a sending user and an at least one receiving user, the system comprising:
a plurality of node computers in selective communication with one another, thereby forming a network, each of said node computers configured for sending an at least one message to a select at least one of the other node computers; and
an at least one cache server in selective communication with the node computers and configured for temporarily storing at least a portion of the at least one message when the node computer of an at least one receiving user of said at least one message is not online;
wherein, upon the sending user of a first one of the node computers desiring to send a message, including any file attachments thereto, to the at least one receiving user of another one of the node computers, said node computers are configured for:
determining whether the node computer of each of the at least one receiving user is online;
for each of the at least one receiving user, upon determining that the node computer of said receiving user is online:
transmitting the message and any file attachments thereto directly to the online node computer of said receiving user; and
upon receipt, storing the message and any file attachments thereto in memory on the online node computer of said receiving user; and
for each of the at least one receiving user, upon determining that the node computer of said receiving user is not online:
transmitting the message to at least one of the at least one cache server and the online node computer of at least one other receiving user for later retrieval;
transmitting any file attachments thereto having a size less than a predefined maximum size to at least one of the at least one cache server and the online node computer of at least one other receiving user for later retrieval;
storing any file attachments thereto having a size greater than the predefined maximum size in memory on the node computer of the sending user;
upon the node computer of said receiving user subsequently going online, notifying said node computer of the existence and locations of the pending message and any file attachments thereto; and
retrieving from at least one of the online node computer of the sending user, the at least one cache server and the online node computer of at least one other receiving user the message and any file attachments thereto and storing said message and file attachments in memory on the node computer of said receiving user.
13. The system of claim 12, further comprising:
an email client in memory on each node computer, said email client configured for allowing a user to draft, send and receive messages;
a local email store in memory on each node computer, said email store configured for storing messages and any file attachments thereto; and
an email agent in memory on each node computer, each said email agent configured for communicating with email agents of other node computers, thereby allowing for the transmission of the messages and any file attachments thereto between the email clients of two or more node computers.
14. The system of claim 12, further comprising:
an identity manager in selective communication with each node computer and configured for storing a network address of each user of the node computers along with associated encryption keys;
a presence manager in selective communication with each node computer and configured for monitoring the online status of each node computer;
a delivery manager in selective communication with each node computer and configured for monitoring the locations of any messages and associated file attachments thereto that are pending delivery to the node computers of one or more receiving users; and
a contact store in selective communication with each node computer and configured for storing contact information related to each node computer and the associated users thereof.
15. The system of claim 14, wherein the node computers are further configured for, upon the sending user of the first one of the node computers desiring to send a message, including any file attachments thereto, to be received by the at least one receiving user of at least one of the other node computers, obtaining from the identity manager an at least one encryption key associated with the network address of each of the at least one receiving user for use in encrypting the message and any file attachments thereto.
16. The system of claim 14, wherein the node computers are further configured for, upon determining that a given node computer of a receiving user is not online:
notifying the delivery manager of the existence and respective locations of the pending message and any file attachments thereto; and
querying the presence manager to determine which of the at least one cache server and node computer storing the message and any file attachments thereto is currently online.
17. The system of claim 12, wherein the node computers are further configured for:
retrieving from at least one of the at least one cache server and the online node computer of at least one other receiving user the message and any file attachments thereto, having a size less than the predefined maximum size, and storing said message and file attachments in memory on the node computer of said receiving user;
upon determining that the node computer of the sending user is online, retrieving from the node computer of the sending user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user; and
upon determining that the node computer of the sending user is not online, retrieving from the at least one online node computer of another receiving user any file attachments thereto having a size greater than the predefined maximum size and storing said file attachments in memory on the node computer of said receiving user.
18. The system of claim 12, wherein the node computers are further configured for, upon receipt of the message and any file attachments thereto, sending an acknowledgement receipt message to the node computer of the sending user.
19. The system of claim 12, wherein the node computers are further configured for automatically forwarding the message and any file attachments thereto from a first one of the cache servers to an at least one further one of the cache servers deemed to be relatively closer to the at least one node computer of the at least one receiving user.
20. The system of claim 12, wherein the node computers are further configured for, upon a one of the cache servers going offline, automatically forwarding any pending messages and file attachments thereto stored by said cache server to an at least one other online cache server.
US14/857,640 2007-11-21 2015-09-17 Peer-to-peer email Active US9578096B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/857,640 US9578096B2 (en) 2007-11-21 2015-09-17 Peer-to-peer email

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US98977407P 2007-11-21 2007-11-21
US12/276,114 US20090144380A1 (en) 2007-11-21 2008-11-21 Peer-to-peer email
US13/586,730 US9166937B2 (en) 2007-11-21 2012-08-15 Peer-to-peer email
US14/857,640 US9578096B2 (en) 2007-11-21 2015-09-17 Peer-to-peer email

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/586,730 Continuation US9166937B2 (en) 2007-11-21 2012-08-15 Peer-to-peer email

Publications (2)

Publication Number Publication Date
US20160028799A1 US20160028799A1 (en) 2016-01-28
US9578096B2 true US9578096B2 (en) 2017-02-21

Family

ID=40676874

Family Applications (3)

Application Number Title Priority Date Filing Date
US12/276,114 Abandoned US20090144380A1 (en) 2007-11-21 2008-11-21 Peer-to-peer email
US13/586,730 Active 2030-03-25 US9166937B2 (en) 2007-11-21 2012-08-15 Peer-to-peer email
US14/857,640 Active US9578096B2 (en) 2007-11-21 2015-09-17 Peer-to-peer email

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US12/276,114 Abandoned US20090144380A1 (en) 2007-11-21 2008-11-21 Peer-to-peer email
US13/586,730 Active 2030-03-25 US9166937B2 (en) 2007-11-21 2012-08-15 Peer-to-peer email

Country Status (1)

Country Link
US (3) US20090144380A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11044215B1 (en) 2012-09-22 2021-06-22 Motion Offense, Llc Methods, systems, and computer program products for processing a data object identification request in a communication

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL2174456T3 (en) * 2007-07-25 2011-10-31 Lukaszyk Szymon A method and system of transferring electronic messages
US20090144380A1 (en) 2007-11-21 2009-06-04 Kallman William R Peer-to-peer email
US20100031333A1 (en) * 2008-07-22 2010-02-04 Mitchell Mark T Secure email
US20100281224A1 (en) * 2009-05-01 2010-11-04 International Buisness Machines Corporation Prefetching content from incoming messages
US8560598B2 (en) 2009-12-22 2013-10-15 At&T Intellectual Property I, L.P. Integrated adaptive anycast for content distribution
US10200325B2 (en) * 2010-04-30 2019-02-05 Shazzle Llc System and method of delivering confidential electronic files
US8799364B2 (en) * 2010-08-25 2014-08-05 Anchorfree, Inc. System and method for peer to peer social networking
US9299056B2 (en) * 2010-09-12 2016-03-29 Scayl, Inc. Peer-to-peer email with video and advertising aspects
US8589423B2 (en) 2011-01-18 2013-11-19 Red 5 Studios, Inc. Systems and methods for generating enhanced screenshots
PL394944A1 (en) * 2011-05-19 2012-12-03 Szymon Lukaszyk The method and system of sending electronic messages using the instant communication protocol
US8793313B2 (en) 2011-09-08 2014-07-29 Red 5 Studios, Inc. Systems, methods and media for distributing peer-to-peer communications
US8632411B1 (en) 2012-06-28 2014-01-21 Red 5 Studios, Inc. Exchanging virtual rewards for computing resources
US8628424B1 (en) 2012-06-28 2014-01-14 Red 5 Studios, Inc. Interactive spectator features for gaming environments
US8834268B2 (en) 2012-07-13 2014-09-16 Red 5 Studios, Inc. Peripheral device control and usage in a broadcaster mode for gaming environments
US8795086B2 (en) 2012-07-20 2014-08-05 Red 5 Studios, Inc. Referee mode within gaming environments
US20150304411A1 (en) * 2012-09-20 2015-10-22 Telcordia Technologies, Inc. Self-Organizing Distributed Service Overlay for Wireless Ad Hoc Networks
US20140280614A1 (en) * 2013-03-13 2014-09-18 Google Inc. Personalized summaries for content
US9577989B2 (en) * 2014-03-15 2017-02-21 Virtru Corporation Methods and systems for decrypting an encrypted portion of a uniform resource identifier
US10164920B2 (en) * 2014-05-30 2018-12-25 Apple Inc. Message attachment management
US10205599B2 (en) * 2014-12-08 2019-02-12 Luigi Caramico Methods and systems of increasing security quality of computing-device communications
US10447631B2 (en) 2015-03-06 2019-10-15 Microsoft Technology Licensing, Llc Enhanced acknowledgment for messages
US10630686B2 (en) 2015-03-12 2020-04-21 Fornetix Llc Systems and methods for organizing devices in a policy hierarchy
US10560440B2 (en) * 2015-03-12 2020-02-11 Fornetix Llc Server-client PKI for applied key management system and process
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
US9973337B2 (en) * 2015-11-18 2018-05-15 International Business Machines Corporation Domain-server public-key reference
JP6215292B2 (en) * 2015-12-22 2017-10-18 Line株式会社 Communication control method, information processing apparatus, and program
US11063980B2 (en) 2016-02-26 2021-07-13 Fornetix Llc System and method for associating encryption key management policy with device activity
US10931653B2 (en) 2016-02-26 2021-02-23 Fornetix Llc System and method for hierarchy manipulation in an encryption key management system
US10917239B2 (en) 2016-02-26 2021-02-09 Fornetix Llc Policy-enabled encryption keys having ephemeral policies
US10860086B2 (en) 2016-02-26 2020-12-08 Fornetix Llc Policy-enabled encryption keys having complex logical operations
US10880281B2 (en) 2016-02-26 2020-12-29 Fornetix Llc Structure of policies for evaluating key attributes of encryption keys
US11362980B2 (en) * 2016-08-18 2022-06-14 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Sending messages to an unavailable device
CN106851741B (en) * 2016-12-10 2020-02-28 浙江大学 Distributed mobile node file caching method based on social relation in cellular network
CN108259312A (en) * 2016-12-29 2018-07-06 广州市动景计算机科技有限公司 Information issuing method, device and server
US10601589B1 (en) 2018-07-16 2020-03-24 Banuba Limited Computer systems designed for instant message communications with computer-generated imagery communicated over decentralised distributed networks and methods of use thereof
US10951703B1 (en) * 2019-10-15 2021-03-16 Microsoft Technology Licensing, Llc Peer-to-peer email content replication and synchronization
CN110932959B (en) * 2019-10-24 2022-06-21 视联动力信息技术股份有限公司 Method, device, storage medium and equipment for mail transmission in video network

Citations (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5699528A (en) 1995-10-31 1997-12-16 Mastercard International, Inc. System and method for bill delivery and payment over a communications network
US6285991B1 (en) 1996-12-13 2001-09-04 Visa International Service Association Secure interactive electronic account statement delivery system
US20010046862A1 (en) 2000-02-09 2001-11-29 Netfrontier, Inc. Communication systems, components, and methods operative with programmable wireless devices
US20020029166A1 (en) 1999-12-08 2002-03-07 Qualcomm Incorporated E-mail software and method and system for distributing advertisements to client devices that have such e-mail software installed thereon
US20020059139A1 (en) 1999-03-12 2002-05-16 Scott Evans System and method for debt presentment and resolution
US20020077978A1 (en) 2000-06-22 2002-06-20 The Chase Manhattan Bank Method and system for processing internet payments
US20020083140A1 (en) 2000-12-21 2002-06-27 Shin Dong Seok Advertisement servicing system using e-mail arrival notifying program and method therefor
US20030078832A1 (en) 2001-09-04 2003-04-24 Alvarez Alan P. System and method for determining the effectiveness and efficiency of advertising media
US20030105712A1 (en) 2001-11-30 2003-06-05 Gerhard Bodensohn Messaging system and method
US20030154135A1 (en) 1999-11-05 2003-08-14 Covington Robert D. Interactive in-store/in-mall and on-line shopping system and method
US20030159071A1 (en) 2002-02-21 2003-08-21 International Business Machines Corporation Electronic password wallet
US20030208441A1 (en) 2000-06-29 2003-11-06 The Chase Manhattan Bank Electronic bill presentment and payment system and method
US20040034801A1 (en) 2001-02-15 2004-02-19 Denny Jaeger Method for creating and using computer passwords
US20040064511A1 (en) 2002-08-29 2004-04-01 Abdel-Aziz Mohamed M. Peer-to-peer email messaging
US20050076087A1 (en) 2003-09-18 2005-04-07 Vulcan Portals Inc. Method and system for email synchronization for an electronic device
US20050080861A1 (en) 2003-10-14 2005-04-14 Daniell W. Todd Selectively displaying email folders
US20050114367A1 (en) 2002-10-23 2005-05-26 Medialingua Group Method and system for getting on-line status, authentication, verification, authorization, communication and transaction services for Web-enabled hardware and software, based on uniform telephone address, as well as method of digital certificate (DC) composition, issuance and management providing multitier DC distribution model and multiple accounts access based on the use of DC and public key infrastructure (PKI)
US20050114652A1 (en) 2003-11-26 2005-05-26 Totemo Ag End-to-end encryption method and system for emails
US20050138126A1 (en) 2003-12-23 2005-06-23 Timucin Ozugur Peer-to-peer e-mail
US20050152542A1 (en) 2003-12-22 2005-07-14 Wachovia Corporation Public key encryption for groups
US20050165896A1 (en) 2005-04-15 2005-07-28 The Go Daddy Group, Inc. Relevant email ads for domain name advertiser
US20050198153A1 (en) 2004-02-12 2005-09-08 International Business Machines Corporation Automated electronic message filing system
US20060009243A1 (en) 2004-07-07 2006-01-12 At&T Wireless Services, Inc. Always-on mobile instant messaging of a messaging centric wireless device
US20060020708A1 (en) 2004-06-30 2006-01-26 Wen-Tai Hsieh System and method for peer-to-peer communication
US20060041472A1 (en) 2004-08-23 2006-02-23 Lukose Rajan M Systems and methods of interfacing an advertisement with a message presentation client
US7031939B1 (en) 2000-08-15 2006-04-18 Yahoo! Inc. Systems and methods for implementing person-to-person money exchange
US20060155810A1 (en) 2002-11-14 2006-07-13 Paul Butcher Method and device for electronic mail
US20060168012A1 (en) 2004-11-24 2006-07-27 Anthony Rose Method and system for electronic messaging via distributed computing networks
US20070005713A1 (en) 2005-07-01 2007-01-04 Levasseur Thierry Secure electronic mail system
US20070043846A1 (en) 2005-08-17 2007-02-22 Canada Post Corporation Electronic content management systems and methods
US7213047B2 (en) 2002-10-31 2007-05-01 Sun Microsystems, Inc. Peer trust evaluation using mobile agents in peer-to-peer networks
US20070124201A1 (en) 2005-11-30 2007-05-31 Hu Hubert C Digital content access system and methods
US7257639B1 (en) 2001-01-19 2007-08-14 Microsoft Corporation Enhanced email—distributed attachment storage
US20070233790A1 (en) 2006-03-31 2007-10-04 Microsoft Corporation Determining failed delivery of email messages using email notifications
US20070244752A1 (en) 2006-04-17 2007-10-18 Anthony Jeremiah Bayne System and method for the integrated distribution of advertising via the internet and mobile terminals
US20070271348A1 (en) 2006-05-18 2007-11-22 Sung Yang System and method of fault-tolerant and privacy-safe location tracking via email
US20080028017A1 (en) 2006-07-28 2008-01-31 Garbow Zachary A System and method for distributing email attachments
US20080233921A1 (en) 2003-09-11 2008-09-25 Cvon Innovations Limited Method and system for distributing data to mobile devices
US20090070263A1 (en) 2007-09-12 2009-03-12 Wachovia Corporation Peer to peer fund transfer
US20090144380A1 (en) 2007-11-21 2009-06-04 Kallman William R Peer-to-peer email
US20090157829A1 (en) 2007-12-14 2009-06-18 Electronics And Telecommunications Research Institute Peer-to-peer service system and method using e-mail service
US20090177754A1 (en) 2008-01-03 2009-07-09 Xobni Corporation Presentation of Organized Personal and Public Data Using Communication Mediums
US20090222450A1 (en) 2005-05-16 2009-09-03 Ron Zigelman System and a method for transferring email file attachments over a telecommunication network using a peer-to-peer connection
US20090316687A1 (en) 2006-03-10 2009-12-24 Peerant, Inc. Peer to peer inbound contact center
US20100031333A1 (en) 2008-07-22 2010-02-04 Mitchell Mark T Secure email
US20110208822A1 (en) 2010-02-22 2011-08-25 Yogesh Chunilal Rathod Method and system for customized, contextual, dynamic and unified communication, zero click advertisement and prospective customers search engine
US20110231494A1 (en) 2010-03-17 2011-09-22 Research In Motion Limited System and method for sending data indirectly to a recipient using another device
US20110276641A1 (en) 2006-06-27 2011-11-10 Confluence Commons, Inc. Aggregation system
US20120079005A1 (en) 2010-09-27 2012-03-29 Research In Motion Limited Method, apparatus and system for controlling transmission of an attachment to an email using a plurality of computers
US20120150975A1 (en) 2010-09-12 2012-06-14 Kallman William R Peer-to-peer email with video and advertising aspects
US8751385B1 (en) 2008-05-15 2014-06-10 The Pnc Financial Services Group, Inc. Financial email

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7042670B2 (en) * 2003-07-11 2006-05-09 Sae Magnetics (H.K.) Ltd. Method for adjusting flying height of magnetic heads using an electrical charge through an electrical pad on the slider

Patent Citations (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5699528A (en) 1995-10-31 1997-12-16 Mastercard International, Inc. System and method for bill delivery and payment over a communications network
US6285991B1 (en) 1996-12-13 2001-09-04 Visa International Service Association Secure interactive electronic account statement delivery system
US20020059139A1 (en) 1999-03-12 2002-05-16 Scott Evans System and method for debt presentment and resolution
US20030154135A1 (en) 1999-11-05 2003-08-14 Covington Robert D. Interactive in-store/in-mall and on-line shopping system and method
US20020029166A1 (en) 1999-12-08 2002-03-07 Qualcomm Incorporated E-mail software and method and system for distributing advertisements to client devices that have such e-mail software installed thereon
US20010046862A1 (en) 2000-02-09 2001-11-29 Netfrontier, Inc. Communication systems, components, and methods operative with programmable wireless devices
US20020077978A1 (en) 2000-06-22 2002-06-20 The Chase Manhattan Bank Method and system for processing internet payments
US20030208441A1 (en) 2000-06-29 2003-11-06 The Chase Manhattan Bank Electronic bill presentment and payment system and method
US7031939B1 (en) 2000-08-15 2006-04-18 Yahoo! Inc. Systems and methods for implementing person-to-person money exchange
US20020083140A1 (en) 2000-12-21 2002-06-27 Shin Dong Seok Advertisement servicing system using e-mail arrival notifying program and method therefor
US7257639B1 (en) 2001-01-19 2007-08-14 Microsoft Corporation Enhanced email—distributed attachment storage
US20040034801A1 (en) 2001-02-15 2004-02-19 Denny Jaeger Method for creating and using computer passwords
US20030078832A1 (en) 2001-09-04 2003-04-24 Alvarez Alan P. System and method for determining the effectiveness and efficiency of advertising media
US20030105712A1 (en) 2001-11-30 2003-06-05 Gerhard Bodensohn Messaging system and method
US20030159071A1 (en) 2002-02-21 2003-08-21 International Business Machines Corporation Electronic password wallet
US20040064511A1 (en) 2002-08-29 2004-04-01 Abdel-Aziz Mohamed M. Peer-to-peer email messaging
US7849140B2 (en) 2002-08-29 2010-12-07 Oracle America, Inc. Peer-to-peer email messaging
US20050114367A1 (en) 2002-10-23 2005-05-26 Medialingua Group Method and system for getting on-line status, authentication, verification, authorization, communication and transaction services for Web-enabled hardware and software, based on uniform telephone address, as well as method of digital certificate (DC) composition, issuance and management providing multitier DC distribution model and multiple accounts access based on the use of DC and public key infrastructure (PKI)
US7213047B2 (en) 2002-10-31 2007-05-01 Sun Microsystems, Inc. Peer trust evaluation using mobile agents in peer-to-peer networks
US20060155810A1 (en) 2002-11-14 2006-07-13 Paul Butcher Method and device for electronic mail
US20080233921A1 (en) 2003-09-11 2008-09-25 Cvon Innovations Limited Method and system for distributing data to mobile devices
US7536440B2 (en) 2003-09-18 2009-05-19 Vulcan Portals Inc. Method and system for email synchronization for an electronic device
US20050076087A1 (en) 2003-09-18 2005-04-07 Vulcan Portals Inc. Method and system for email synchronization for an electronic device
US20050080861A1 (en) 2003-10-14 2005-04-14 Daniell W. Todd Selectively displaying email folders
US20050114652A1 (en) 2003-11-26 2005-05-26 Totemo Ag End-to-end encryption method and system for emails
US20050152542A1 (en) 2003-12-22 2005-07-14 Wachovia Corporation Public key encryption for groups
US20050138126A1 (en) 2003-12-23 2005-06-23 Timucin Ozugur Peer-to-peer e-mail
US20050198153A1 (en) 2004-02-12 2005-09-08 International Business Machines Corporation Automated electronic message filing system
US20060020708A1 (en) 2004-06-30 2006-01-26 Wen-Tai Hsieh System and method for peer-to-peer communication
US20060009243A1 (en) 2004-07-07 2006-01-12 At&T Wireless Services, Inc. Always-on mobile instant messaging of a messaging centric wireless device
US20060041472A1 (en) 2004-08-23 2006-02-23 Lukose Rajan M Systems and methods of interfacing an advertisement with a message presentation client
US20060168012A1 (en) 2004-11-24 2006-07-27 Anthony Rose Method and system for electronic messaging via distributed computing networks
US20050165896A1 (en) 2005-04-15 2005-07-28 The Go Daddy Group, Inc. Relevant email ads for domain name advertiser
US20090222450A1 (en) 2005-05-16 2009-09-03 Ron Zigelman System and a method for transferring email file attachments over a telecommunication network using a peer-to-peer connection
US20070005713A1 (en) 2005-07-01 2007-01-04 Levasseur Thierry Secure electronic mail system
US20070043846A1 (en) 2005-08-17 2007-02-22 Canada Post Corporation Electronic content management systems and methods
US20070124201A1 (en) 2005-11-30 2007-05-31 Hu Hubert C Digital content access system and methods
US20090316687A1 (en) 2006-03-10 2009-12-24 Peerant, Inc. Peer to peer inbound contact center
US8239458B2 (en) 2006-03-31 2012-08-07 Microsoft Corporation Determining failed delivery of email messages using email notifications
US20070233790A1 (en) 2006-03-31 2007-10-04 Microsoft Corporation Determining failed delivery of email messages using email notifications
US20070244752A1 (en) 2006-04-17 2007-10-18 Anthony Jeremiah Bayne System and method for the integrated distribution of advertising via the internet and mobile terminals
US20070271348A1 (en) 2006-05-18 2007-11-22 Sung Yang System and method of fault-tolerant and privacy-safe location tracking via email
US20110276641A1 (en) 2006-06-27 2011-11-10 Confluence Commons, Inc. Aggregation system
US20080028017A1 (en) 2006-07-28 2008-01-31 Garbow Zachary A System and method for distributing email attachments
US20090070263A1 (en) 2007-09-12 2009-03-12 Wachovia Corporation Peer to peer fund transfer
US9166937B2 (en) * 2007-11-21 2015-10-20 Scayl, Inc. Peer-to-peer email
US20090144380A1 (en) 2007-11-21 2009-06-04 Kallman William R Peer-to-peer email
US20130218994A1 (en) 2007-11-21 2013-08-22 Scayl, Inc. Peer-to-peer email
US20090157829A1 (en) 2007-12-14 2009-06-18 Electronics And Telecommunications Research Institute Peer-to-peer service system and method using e-mail service
US20090177754A1 (en) 2008-01-03 2009-07-09 Xobni Corporation Presentation of Organized Personal and Public Data Using Communication Mediums
US8751385B1 (en) 2008-05-15 2014-06-10 The Pnc Financial Services Group, Inc. Financial email
US20100031333A1 (en) 2008-07-22 2010-02-04 Mitchell Mark T Secure email
US20140052626A1 (en) 2008-07-22 2014-02-20 Scayl, Inc. Secure email
US20110208822A1 (en) 2010-02-22 2011-08-25 Yogesh Chunilal Rathod Method and system for customized, contextual, dynamic and unified communication, zero click advertisement and prospective customers search engine
US20110231494A1 (en) 2010-03-17 2011-09-22 Research In Motion Limited System and method for sending data indirectly to a recipient using another device
US20120150975A1 (en) 2010-09-12 2012-06-14 Kallman William R Peer-to-peer email with video and advertising aspects
US9299056B2 (en) * 2010-09-12 2016-03-29 Scayl, Inc. Peer-to-peer email with video and advertising aspects
US9373133B2 (en) * 2010-09-12 2016-06-21 Scayl, Inc. Peer-to-peer email with video and advertising aspects
US20120079005A1 (en) 2010-09-27 2012-03-29 Research In Motion Limited Method, apparatus and system for controlling transmission of an attachment to an email using a plurality of computers

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Andreeff et al, Electronic Bill Presentment and Payment-Is It Just a Click Away? Economic Perspectives, 4th Q. Ed. 2001, Federal Reserve Bank of Chicago, pp. 2-16.
Claria, Axon White Paper, Mar. 2007.
Flynn, Bill Presentment and Payment: Electronic vs. Mail, Pitney Bowes Electronic Substitution for Mail: Model and Results, Myth and Reality, Jul. 13, 2005 Background Paper No. 9.
Spiotto, Electronic Bill Payment and Presentment: A Premier (EBPP), Emerging Payments Occasional Papers Series, Federal Reserve Bank of Chicago's Public Policy Studies Series, Dec. 2001.
Stefanadis, Why Hasn't Electronic Bill Presentment and Payment Taken Off? Current Issues in Economics and Finance, vol. 8, No. 7, Jul./Aug. 2002 issues, Payment Studies Function of the Research and Market Analysis Group and published by the Research and Market Analysis Group of the Federal Reserve Bank of New York, pp. 1-6.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11044215B1 (en) 2012-09-22 2021-06-22 Motion Offense, Llc Methods, systems, and computer program products for processing a data object identification request in a communication
US11611520B1 (en) 2012-09-22 2023-03-21 Motion Offense, Llc Methods, systems, and computer program products for processing a data object identification request in a communication
US12028299B1 (en) 2012-09-22 2024-07-02 Motion Offense, Llc Methods, systems, and computer program products for processing a data object identification request in a communication

Also Published As

Publication number Publication date
US9166937B2 (en) 2015-10-20
US20160028799A1 (en) 2016-01-28
US20130218994A1 (en) 2013-08-22
US20090144380A1 (en) 2009-06-04

Similar Documents

Publication Publication Date Title
US9578096B2 (en) Peer-to-peer email
US9373133B2 (en) Peer-to-peer email with video and advertising aspects
US7302471B2 (en) Method for reducing the receipt of unsolicited bulk e-mail and providing anonymity to an email-user
AU2009240392B2 (en) Real-time communications over data forwarding framework
US20140052626A1 (en) Secure email
US20040019695A1 (en) Messaging system and method using alternative message delivery paths
US20080244014A1 (en) Product, method and system for managing multiple user ids in instant messaging or email computer software applications
US20050198171A1 (en) Managing electronic messages using contact information
JP2004500761A (en) System to identify distributed content
TW201101769A (en) Real-time spam look-up system
TW200842604A (en) Implementation of private messaging
AU2003225818A1 (en) Data replication system and method
US20110167131A1 (en) Real-time communications over data forwarding framework
JP2005285116A (en) Cryptographic puzzle cancellation service for deterring bulk electronic mail message
JP2002319975A5 (en)
US20060168038A1 (en) Message gateways and methods and systems for message dispatching based on group communication
CN102036122B (en) Method, device and system for transmitting email information to Internet protocol television (IPTV) terminal
US20090094333A1 (en) Collaborative Electronic Mail Filtering
Damiani et al. Spam attacks: P2P to the rescue
Kageyama et al. An experimental peer-to-peer e-mail system
JP2009188805A (en) Electronic mail system
Ruzmetov et al. Survey of IoT application layer protocols
Kageyama et al. A pull-based e-mail architecture
Mezö et al. Distributed mailing system:(DMS)
EP2045986B1 (en) Method and device for collaborative electronic mail filtering

Legal Events

Date Code Title Description
AS Assignment

Owner name: SCAYL, INC., WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KALLMAN, WILLIAM R.;HOFFMAN, DONALD L.;MITCHELL, MARK T.;SIGNING DATES FROM 20121012 TO 20130227;REEL/FRAME:036901/0664

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: EDGELINK, LLC, OREGON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SCAYL, INC.;REEL/FRAME:044414/0905

Effective date: 20171205

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

FEPP Fee payment procedure

Free format text: SURCHARGE FOR LATE PAYMENT, SMALL ENTITY (ORIGINAL EVENT CODE: M2554); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 4