WO1999006929A9 - An extensible proxy framework for e-mail agents - Google Patents
An extensible proxy framework for e-mail agentsInfo
- Publication number
- WO1999006929A9 WO1999006929A9 PCT/US1998/012809 US9812809W WO9906929A9 WO 1999006929 A9 WO1999006929 A9 WO 1999006929A9 US 9812809 W US9812809 W US 9812809W WO 9906929 A9 WO9906929 A9 WO 9906929A9
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- proxy
- electronic
- message
- electronic mail
- controller
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/107—Computer-aided management of electronic mailing [e-mailing]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/212—Monitoring or handling of messages using filtering or selective blocking
Definitions
- the present invention relates to a proxy framework coupled between an electronic mail client and a network for processing electronic messages.
- the proxy framework performs functions on behalf of the mail client while preserving a standardized interface to a network having electronic messaging capability.
- Advanced electronic mail features can significantly enhance the user's experience of electronic mail by reliably and diligently performing mundane tasks associated with features like classification, filtering, encryption, authentication, and auto response.
- Conventionally some advanced features have been implemented as extensions to (or replacements for) particular e-mail client programs.
- implementation of advanced features within the client electronic mail software itself is cumbersome and inconvenient. This is because of (1) the number and diversity of client software packages, (2) the fact that the code of client software packages is typically beyond the control of the ISPs wishing to add features uniformly to all clients within their service groups, and (3) the difficulty of persuading users to switch client software.
- Some advanced features have also been implemented at servers located in the network path between the many e-mail client programs and the remote source of the e-mail on the network. However, these "server-side" implementations suffer from either limiting the preferences of the individuals who maintain electronic mail capability coupled to the server, or from the impracticality of administering personalized solutions on a large scale.
- agent-like capabilities having advanced functionality in the form of an e-mail proxy that operates logically between the off the shelf mail client, such as NETSCAPE e-mail and EUDORA e-mail, and network based mail servers. It would also be desirable to add advanced agent functionality arbitrarily, using a flexible, extensible proxy framework, without forcing users to change mail client software, server software, or any other aspect of their existing environment.
- a system for processing electronic messages includes an electronic mail client and a proxy application resident in a memory and a communications port for exchanging electronic messages with an electronic mail network.
- the proxy application has a configurable controller specifying a manner of routing electronic messages between the electronic mail client and the communications port.
- a processor within the system coupled to the communications port and the memory, executes the proxy application to route electronic messages between the electronic mail client and the communications port in accordance with a configuration of the controller.
- the controller of the proxy may be configured to perform any convenient function, such as filtering or terminating electronic messages meeting a predetermined criterion or generating new messages in response to receiving an electronic message (autoresponse).
- the proxy may include interfaces that conform to standard protocols such as the simple mail transfer protocol (SMTP) for interfacing with the electronic mail client and a network node within the electronic mail network.
- SMTP simple mail transfer protocol
- Such standard interfaces facilitate integrating the proxy into the electronic message datapath between the mail client and the electronic mail network.
- FIG. 1 depicts a client computer having electronic mail capability coupled to a plurality of other client computers over a computer network.
- FIG. 2 depicts a proxy framework according to the present invention.
- FIG. 3 depicts a method of receiving electronic messages according to the present invention.
- FIG. 4 depicts a method of transmitting an electronic message according to the present invention.
- FIG. 5 depicts a method of processing user commands according to the invention.
- FIG. 1 depicts a plurality of client computers 10, each possessing electronic mail capability, interconnected over a computer network 26 allowing the exchange of data between client computers.
- Computer network 26 includes a plurality of network nodes 24 which may be interconnected electronically, optically, or wirelessly. Each network node 24 may have a plurality of client computers 10 coupled to it.
- Network 26 may be a local area network, a wide area network, or a network of computers operating under the Internet protocol.
- the network may include one or more gateway nodes 28.
- the gateway nodes 28 translate between electronic mail messages in one protocol to electronic mail messages in another protocol used by the e-mail programs at the client computers 10 coupled to the gateway node 28.
- FIG. 1 also shows an exploded view of a client computer 10.
- the client computer 10 includes a processor 12 coupled over one or more buses 14 to a memory 16, a keyboard 18, a mouse, 19, a display 20, and a communications port 22.
- the bus 14 enables the exchange of data between the processor 12 and each interconnected component.
- the memory 16 includes both random access memory (“RAM”) and fixed memory, for example, disk drives and optical drives.
- the memory 16 includes stored program instructions for a user's mail client 32 as well as stored program instructions for an electronic mail proxy 30 according to the present invention. The contents of the memory 16 are more fully described with reference to FIGS. 2-5.
- the processor 12 executes program instructions stored in the memory 16 and monitors and responds to instructions entered at the keyboard 18. In addition, the processor 12 updates the display 20 according to program instructions.
- the communications port 22 allows the processor 12 to communicate with other client computers 10 coupled to the network 26.
- the communications port 22 is implemented as a modem, a local area network card, or similar device for signaling over a communications link.
- the communications port 22 may be coupled over a local area network such as an Ethernet or token ring network to a network node 24.
- the communications port 22 may be connected to an Internet service provider node over a telecommunications link. It is through the communications port 22 that the processor 12 is able to send and receive electronic mail messages with other client computers on the network 26.
- FIG. 2 shows the e-mail proxy architecture 30 and its interaction with a user's mail client 32.
- the e-mail proxy consists of six daemon processes including SMTP proxy server 33, POP3 proxy server 34, POP3 proxy getter 36, SMTP proxy sender 38, user interface 40, and controller 31.
- the proxy 30 also includes four persistent mail queues called outgoing queue 42, deliver queue 44, incoming queue 46, and send queue 48.
- the controller 31 acts as the brain of the proxy 30, directing the desired proxy functionalities such as filtering, auto response, encryption, authentication, and classification.
- the controller 31 gets input from two of the four mail queues, incoming queue 46 and outgoing queue 42. Typically, the controller 31 will accept a message from one of these two queues, process it, and then place messages in one or both of its output queues, send queue 48 and deliver queue 44. Optionally, the controller 31 may send events to a user interface 40.
- the behavior of the controller 31 may be customized to include advanced features to meet the needs of a particular user.
- the user customizes the controller at compile time (using a programming model "API" as will be described later in this disclosure) by specifying custom feature logic that comprises instructions for what the proxy is to do in response to the various incoming messages and other events it must handle.
- API programming model
- the user would specify a set of rules that classify incoming messages based upon syntactic criteria defined by the user, such as "is the sender address that of a known correspondent? Does the message contain the word 'advertisement,'" or a synonym or close misspelling thereof?
- the user then surrounds these rules with procedural program steps that actually compute the syntactic criteria (via utility functions provided in the proxy framework, or perhaps by new utility functions coded by hand for this application) and then evaluate the rule predicates.
- the programmer includes steps that dictate if the predicates evaluate to true for a rule, then the action described by the rule is taken, such as delivering a message to the user or sending one out to the network.
- the user would specify to the controller 31 program steps that first extract the sender of an incoming message from the message Jieader; next, look up the decryption key stored in the proxy database for that sender; next supply it, along with the encrypted message body to a decryption algorithm utility function (either provided by the framework or coded by hand), packaging the resulting decrypted body along with the original header information into a new message; and finally specifying the action of delivering this new message to the user.
- a similar sequence of steps could encrypt the outgoing message and send it to the intended recipient.
- the feature logic for this controller would proceed as follows. The first step would retrieve the sender address from the header of the message using a supplied utility function. Next, the logic would do a LOOKUP of the DECRYPTION-KEY for that sender. If one is found, the next step would apply the decryption utility function to the message body using the looked up key. Finally, a new message would be constructed having the same header information as the original but having the decrypted body in place of the original body, and this new message would be placed in the deliver queue (using the DELIVER act) for presentation to the client.
- the controller 31 may be programmed, for example, to examine an incoming message (using utility functions provided by the framework or coded by hand) to see if it contains a digital signature block (a section of text having a particular predefined format). If it does have such a block, then the sender's address is used as a key to look up in the state database a signature verification key, such as the decryption half of an asymmetric public/private key pair as is known in the art. If such a key is known, then a digital signature verification utility routine is applied to the message to determine whether the signature is valid. If it is, then, for example, a header line can be added that indicates "sender signature verified".
- a signature verification key such as the decryption half of an asymmetric public/private key pair as is known in the art.
- a line could be added that indicates "sender signature not verified”. Alternatively, a message with an unverified signature could be simply discarded by the proxy. If no key is known for a sender, a header line could be added to indicate "no sender key known”.
- the controller 31 may be programmed, for example, to examine incoming messages (using utility functions provided by the framework or coded by hand) to see if they have a particular structured command format. If an incoming message does not have this format, then it is simply delivered without change to the user's mailbox. If it does have this format, then a prescribed action can be taken, such as formatting a new message having the requested document as its body and addressing it to the sender address of the original message. The user-supplied feature logic would then specify that the new message is to be sent to that address. As an example, suppose a user wishes to have his proxy automatically send out an electronic copy of any one of his published papers when any correspondent sends a request for one.
- the feature logic would direct the controller 31 to first examine this first line of the incoming message and detect adherence to the required format. It would then also check its state database to determine whether "email-proxy.ps" is the name of a paper it has access to. If both checks succeed, it would create a new message, addressed to the sender of the original message, having a body consisting of the electronic format of the email-proxy.ps paper. It would finally place this new message in the send queue (using the SEND act) for subsequent transmission to the network. If either of the syntactic checks mentioned above fails, then the original message is simply placed unchanged in the deliver queue using the DELIVER act.
- a proxy 30 may be configured to perform a plurality of the features described herein (for example, autoresponse, digital signature verification, and encryption) on the same message if desired.
- the SMTP (“simple mail transfer protocol”) server is coupled to the user's electronic mail client 32 and to the outgoing queue 42.
- the SMTP server accepts outgoing messages from the user's e-mail client 32 using an SMTP protocol, which is well known, and places them in the outgoing queue 42.
- the POP3 server 34 is coupled to the delivery queue 44 and to the user's e-mail client 32.
- the POP3 server serves messages from the deliver queue 44, which is filled by the controller 31, to the user's mail client 32 according to the well known POP3 ("post office protocol”) protocol. Both SMTP and POP3 are widely used on the Internet today.
- the SMTP server 33 and the POP3 server 34 may be replaced with the new protocols without affecting implementation of the other components of the proxy 30.
- the SMTP proxy sender 38 and the POP3 proxy getter 36 may similarly be replaced.
- the SMTP proxy sender 38 is coupled to the send queue 48 and an SMTP network server 50 located on a network node remotely situated from the proxy 30.
- the SMTP proxy sender 38 monitors the send queue 48, which is filled by the controller 31, and uses the SMTP protocol to transmit these messages out to the network SMTP server 50 designated by the user's configuration.
- the user's configuration is stored in the database 39.
- POP3 proxy getter 36 is coupled to a POP3 netserver 52 located on a remote network node and to the incoming queue 46.
- the POP3 proxy getter 36 is a client for the network POP3 netserver 52 designated by the user in the user configuration stored in database 39.
- the POP3 proxy getter 36 gets messages from the POP3 netserver 52 and places them in the incoming queue 46 when prompted by a signal from the user's mail client 32 which is forwarded by the POP3 proxy server 34.
- a user interface 40 may be added optionally.
- the user interface 40 is coupled to the controller 31 and allows the user direct control over the proxy 30.
- the user interface 40 may send and receive signals to and from the controller 31. Control or processing within the proxy 30 is event driven.
- Control or processing within the proxy 30 is event driven.
- the queues' consumer process is awakened and the message stored. Storing a message into the queue may cause other processes to be awakened.
- the controller 31 may place one or more messages into the send queue 48. Storing of the message in the send queue 48 may wake up a process within the SMTP proxy sender 38, causing the SMTP proxy sender 38 to send one or more messages from the send queue 48 to the SMTP netserver 50.
- An extra signaling path is used to handle the on-demand nature of the POP3 protocol.
- the mail client probes the proxy POP3 server 34
- the latter sends a signal to the POP3 proxy getter 36 and waits a short (configurable) period before checking the deliver queue 44.
- This wait allows the POP3 proxy getter 36 a chance to retrieve any new messages from the POP3 network server 52.
- the wait also allows the controller 31 a chance to process any new messages retrieved, possibly placing one or more messages into the deliver queue 44.
- the POP3 server 34 forwards any messages in the deliver queue 44 to the mail client 32.
- the proxy 30 can be configured to have the POP3 proxy getter 36 periodically check the network POP3 server 52 (even absent probes from the client), allowing proxy processing to proceed even when the user is not active at the mail client 32.
- All of the message queues are persistent, which means that the data within each queue is stored with fixed memory backup such as on a disk drive or an EEPROM, so that in the event of a system crash the contents of the queues will not be lost.
- Messages are not deleted from one queue until the consumer process for the queue has finished processing and either has stored result messages into persistent queues (in the case of the controller) or confirmed successful completion of a protocol (message delivery by SMTP sender 38 or POP3 server 34).
- There is a small risk of duplicate message processing if a crash occurs after the result messages are written and before the input messages are deleted; however, this is arguably a better tradeoff than the opposite approach which allows the possibility of losing messages.
- the proxy 30 may be implemented using any software language including c, C++, PASCAL and COBOL.
- the proxy 30 is implemented as a stand-alone Java application in a reusable, object-oriented fashion within the client computer 10 .
- the proxy is started up once (for example when the machine 10 is booted).
- the initialize-start option performs all initializations, including starting over from an empty state database.
- the warm-start option performs only enough initialization to resume processing where processing left off the last time the machine went down.
- the user will perform an initialize-start once and then warm-starts each boot thereafter.
- FIG. 3 illustrates a method of handling incoming electronic mail messages by the proxy 30. It also illustrates the interaction between the proxy 30 and the user's mail client 32.
- a user at the computer 10 issues a command to the mail client 32 to get any new mail present on the network 26. The user may indicate this with a keystroke on the keyboard 18, or with a click of a mouse coupled to the computer 10, or in any other convenient manner of indicating commands to the computer 10.
- the user's mail client 32 sends a request to the POP3 proxy server 34 within the proxy 30 to get any new mail which may have arrived at the proxy 30 from the network.
- the POP3 proxy server 34 forwards a signal for getting mail to the POP3 proxy getter 36.
- the POP3 proxy getter 36 issues a request to the POP3 netserver 52 specified by the user's configuration in the database 39. The request is for new mail.
- the proxy POP3 server 34 suspends in step
- step 105 the POP3 proxy getter 36 receives from the POP3 netserver 52 any new messages designated for a computer 10.
- step 106 the POP3 getter 36 sends received messages to the incoming queue 46 and to the controller 31.
- step 107 the controller 31 processes the incoming event and places any messages received from the POP3 proxy getter 36 into the deliver queue 44 when the message is for the user's e-mail client and the controller 31 updates its state via one or a collection of set commands to the database 39.
- the controller configuration so specifies, then no updates may be made via set.
- the controller 31 may forego placing the received message into the deliver queue 44 depending on whether the controller 31 has been configured with advanced features. For example, if the controller is actively filtering incoming messages and the incoming message meets the filtering criteria, the message is terminated without being forwarded to the email client.
- the controller 31 may, in response to receiving an incoming message, place a response message in the send queue 48 pursuant to the feature logic and configuration information in database 39. In general, arbitrary numbers of response messages may be placed in the send and deliver queues as prescribed by the user specified feature logic.
- the proxy 30 optionally updates its user interface window with messages descriptive of the controller's actions to inform the user of such actions.
- the POP3 proxy server 34 comes out of its suspended state and checks the deliver queue 44 for any new messages which have arrived. If new messages have arrived, in step 109, the POP3 proxy server 34 forwards the messages to the user's mail client 32.
- step 110 the mail client presents new messages to a user.
- step 111 the controller's new state is saved to the database 39.
- step 112 the SMTP sender 38 sends a message from the send queue 48 to a SMTP network server 50 which forwards the message to the new address determined by the feature logic, incoming message content, and configuration information in the send queue. Step 112 is optional and will not occur unless the feature logic dictates one or more response messages.
- FIG. 4 illustrates a method for sending a message from the mail client through the proxy 30 to a remote mail client on the network.
- a user composes a message in the mail client 32. The user then initiates a "send operation" when the message has been completed.
- the mail client 32 sends the message to the SMTP proxy server 33 within the proxy 30.
- the SMTP proxy server 33 receives the message from the user's mail client 32 and stores it into the outgoing queue 42.
- the SMTP server 33 indicates to the controller 31 that the message has been stored in the outgoing queue 42.
- the controller 31 processes the outgoing event and places the message presently in the outgoing queue 42 into the send queue 48.
- the controller 31 determines whether messages will be placed in the send queue 48.
- the controller 31 updates its state via one or more "set" commands and stores its state in the database 39. This is indicated in step 210.
- the proxy optionally updates a user interface window within the display 20 to indicate the status of the controller.
- the SMTP proxy sender 38 transmits the message from the send queue 48 to the SMTP netserver 50 over the network. The message is in turn further transmitted over the network 26 to the remote address specified in the e-mail header.
- the controller 31 may be customized with a feature logic causing one or more messages to be placed in the deliver queue 44 when the outgoing message meets a predefined criteria.
- the predefined criteria may be based on content contained within the header or the body of the outgoing e-mail message, as well as the current state of the controller 31.
- the controller state may change based on the time of day or other conditions as specified by the customizer.
- FIG. 5 illustrates a method for processing user commands.
- a user issues a command to the proxy 30 using the user interface window 40.
- the proxy user interface 40 receives and sends the command to the controller 31.
- the controller 31 processes the incoming command and places messages into the send 48 and/or deliver queue 44 when the command so requires. Additionally, the controller 31 may update its state within the database 39 when required.
- the proxy 30 updates the proxy user interface 40 when the command has been processed.
- the controller's new state is saved.
- the SMTP proxy sender 38 sends messages from the send queue 48 to the SMTP netserver over the network 26 when so required by the user issued command.
- the proxy 30 is customized, i.e. the desired feature logic is specified at compile time, by specializing three classes.
- the proxy class is the highest level such class. It has two overridable factory methods, make-controller and make-interface, which return instances of the other two user-specialized classes, controller and notifiable-window. (It is not required for customization to override make-interface, if no interface window is needed.)
- Another optional override is the init-from-config method which allows custom initializations to be performed, based (in part) on information read from the configuration file within database 39.
- the preferred implementation provides an abstract controller class.
- the customizer overrides the following five methods to implement the desired agent functionalities (all except the last have void return types): • handle_INIT 0 is called once at initialize-start only
- handle_COMMAND command, user, arglist
- This method may be called by the user interface 40 in response to a user gesture. It may also be called at initialization time if desired.
- the proxy callers of the "handle x" methods are preferably synchronized, so that a programmer needn't worry about concurrency.
- Each of these specialized methods may call effectors (acts), state database operations, and utility routines, which are provided by the framework code.
- effector methods Two effector methods are provided: MAIL (message) deposits a message into the send queue 48, and DELIVER (message) deposits a message into the deliver queue 44.
- MAIL messages
- DELIVER messages
- a simple (persistent) database model is provided to record the state of the proxy 30 which is saved to disk and restored if the proxy is warm-started.
- An overloaded SET method allows setting values of database relations, which may be 1, 2, or 3 placed relations in the current implementation.
- the required-db-properties method must return a list of db-property objects defining these relations.
- a library of utility routines is provided for analyzing and synthesizing messages, such as extracting the message sender, canonicalizing e-mail addresses, or constructing a new message from sender, recipients, and text.
- the abstract data type "message,” implemented using database techniques that are well known in the art, preferably hides the detail involved in making messages persistent, so that the user has a simple programming model with which to work.
- the abstract notifiable-window class instances of which are typically user- interface windows, must implement the methods notify-set, notify-event, and notify- act which are called when (a) a state-db relation is modified (SET), (b) an event, such as INCOMING, OUTGOING, COMMAND, or INIT, occurs and is handled, and (c) an act effector is invoked, such as MAIL or DELIVER.
- Notifiable- window implementations may invoke INCOMING, OUTGOING, COMMAND, or INIT events during processing. Typically, this processing will accept user gestures, issue commands to the controller 31, and update a status display.
- the proxy 30 is configured to implement a personal channel agent (PC A) which manages a user's e-mail channels.
- PC A performs address translation such as rewriting a header within the e-mail message and bookkeeping, for example, storing extended correspondent return addresses in the database 39 and correlating each return address to a particular piece of outgoing mail.
- the PCA also autonomously engages in a channel switching protocol with another PCA instance running somewhere else in the network. This protocol allows PCA's, by sending structured e-mail messages to each other, to agree on which channel is to be used by the users at the PCA for addressing mail between them.
- a configuration parameter may be included that restricts the SMTP server to accepting network connections only from the same host it is running on. This is necessitated by the insecurity of the SMTP protocol, which does no authentication. With this restriction, the proxy must run on the user's machine. However, this restriction can be relaxed if the proxy is to run in the network, possibly by dispatching on the IP address of the incoming connection and connecting to a proxy devoted to users known to have that IP address.
- I extended the proxy and controller classes, as described above, including implementing an interface window allowing the user to directly command the proxy to do various things. I had to write only 1700 lines of Java code custom for the PCA as compared to the 4600 lines in the preferred embodiment of the proxy framework. Thus, about 73% is reused framework code. Of course, reuse fraction is sensitive to message processing complexity of the task.
- the proxy 30 has other more general applications.
- the proxy 30 can be customized to make a general mail forwarder/gateway with arbitrary filtering, authentication, and autoresponse functionalities, by using only the SMTP half of the proxy (deactivating the POP3 portions by setting a switch).
- the proxy 30 can implement a multi-user host with filtering, autoresponse, etc, where multiple users can pick up their mail.
- One can also make this user-programmable with a user proxy communicating to the host via e-mail messages.
- the integrated SMTP interface allows the easy collaboration of multiple proxy-like agents distributed around the network.
- the proxy framework can be used as a platform for building distributed software agent applications.
Abstract
Description
Claims
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/127,554 | 1997-08-03 | ||
US5464897P | 1997-08-04 | 1997-08-04 | |
US60/054,648 | 1997-08-04 | ||
US12755498A | 1998-08-03 | 1998-08-03 |
Publications (4)
Publication Number | Publication Date |
---|---|
WO1999006929A2 WO1999006929A2 (en) | 1999-02-11 |
WO1999006929A3 WO1999006929A3 (en) | 1999-02-11 |
WO1999006929A8 WO1999006929A8 (en) | 1999-05-27 |
WO1999006929A9 true WO1999006929A9 (en) | 1999-07-01 |
Family
ID=26733307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1998/012809 WO1999006929A2 (en) | 1997-08-03 | 1998-08-03 | An extensible proxy framework for e-mail agents |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO1999006929A2 (en) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2347053A (en) * | 1999-02-17 | 2000-08-23 | Argo Interactive Limited | Proxy server filters unwanted email |
US6768790B1 (en) * | 1999-07-09 | 2004-07-27 | Pitney Bowes Inc. | Message automated information system and importance navigator |
JP3593931B2 (en) * | 1999-09-20 | 2004-11-24 | 日本電気株式会社 | Email system |
US6826609B1 (en) | 2000-03-31 | 2004-11-30 | Tumbleweed Communications Corp. | Policy enforcement in a secure data file delivery system |
AU2001281218A1 (en) * | 2000-08-08 | 2002-02-18 | Tumbleweed Communications Corp. | Recipient-specified automated processing in a secure data file delivery system |
US6650890B1 (en) | 2000-09-29 | 2003-11-18 | Postini, Inc. | Value-added electronic messaging services and transparent implementation thereof using intermediate server |
US20030135618A1 (en) * | 2002-01-17 | 2003-07-17 | Ravikumar Pisupati | Computer network for providing services and a method of providing services with a computer network |
EP2068516B1 (en) | 2002-02-19 | 2018-09-05 | Google LLC | E-mail management services |
US7155725B1 (en) | 2002-03-27 | 2006-12-26 | Danger, Inc. | Apparatus and method for coordinating multiple e-mail accounts |
US7162513B1 (en) | 2002-03-27 | 2007-01-09 | Danger, Inc. | Apparatus and method for distributing electronic messages to a wireless data processing device using a multi-tiered queuing architecture |
US8775675B2 (en) | 2002-08-30 | 2014-07-08 | Go Daddy Operating Company, LLC | Domain name hijack protection |
US7627633B2 (en) | 2002-08-30 | 2009-12-01 | The Go Daddy Group, Inc. | Proxy email method and system |
US7130878B2 (en) | 2002-08-30 | 2006-10-31 | The Go Daddy Group, Inc. | Systems and methods for domain name registration by proxy |
US7437405B1 (en) | 2002-10-01 | 2008-10-14 | Danger, Inc. | System and method for managing data objects in a wireless device |
US7958187B2 (en) | 2003-02-19 | 2011-06-07 | Google Inc. | Systems and methods for managing directory harvest attacks via electronic messages |
US7603472B2 (en) | 2003-02-19 | 2009-10-13 | Google Inc. | Zero-minute virus and spam detection |
US7647321B2 (en) | 2004-04-26 | 2010-01-12 | Google Inc. | System and method for filtering electronic messages using business heuristics |
US7668951B2 (en) | 2004-05-25 | 2010-02-23 | Google Inc. | Electronic message source reputation information system |
US20060168020A1 (en) | 2004-12-10 | 2006-07-27 | Network Solutions, Llc | Private domain name registration |
US7710912B1 (en) | 2005-07-11 | 2010-05-04 | Microsoft Corporation | Managing content synchronization between a data service and a data processing device |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5832221A (en) * | 1995-12-29 | 1998-11-03 | At&T Corp | Universal message storage system |
JP3241634B2 (en) * | 1997-05-28 | 2001-12-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Information processing method and information processing apparatus using electronic mail, storage medium storing program for controlling information processing apparatus |
-
1998
- 1998-08-03 WO PCT/US1998/012809 patent/WO1999006929A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO1999006929A8 (en) | 1999-05-27 |
WO1999006929A2 (en) | 1999-02-11 |
WO1999006929A3 (en) | 1999-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO1999006929A9 (en) | An extensible proxy framework for e-mail agents | |
US10404641B2 (en) | Internet e-mail bridge | |
US7020779B1 (en) | Secure, distributed e-mail system | |
KR101251862B1 (en) | Presenting and manipulating electronic mail conversations | |
US7412490B2 (en) | Routing instant messages using configurable, pluggable delivery managers | |
JP4871113B2 (en) | Method and system for providing version control of email attachments | |
EP0909068B1 (en) | Method and apparatus for structured communication | |
US6999993B1 (en) | Methods and systems for end-users extensible electronic mail | |
US20050131900A1 (en) | Methods, apparatus and computer programs for enhanced access to resources within a network | |
US6801603B1 (en) | Online aggregation | |
KR20020071858A (en) | Electronic messaging system method and apparatus | |
KR20010030794A (en) | Messaging application having a plurality of interfacing capabilities | |
WO2006066257A2 (en) | Management of network devices via email | |
JP2006180532A (en) | E-mail system, managing device, program, and computer readable recording medium storing the program | |
JPH11219326A (en) | Electronic file management system | |
JP2002305513A (en) | Information communication system, information terminal, its control method, computer program, and storage medium | |
JP2003256257A (en) | Common processor for company-wide total integrated system, method therefor, and common processing program | |
US20020184313A1 (en) | Method for exchange of data and user interface components | |
KR100438545B1 (en) | E-mail reception method in wireless communication terminal device | |
GB2350528A (en) | Remote control of devices using electronic mail | |
JPH10320319A (en) | Electronic mail reader having opening confirmation function and recording medium recording opening confirmation function read program | |
KR20030073323A (en) | System and method for remote management using e-mail | |
KR20000045265A (en) | Data management method of switchboard |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): CA Kind code of ref document: A3 Designated state(s): CA |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE Kind code of ref document: A2 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
AK | Designated states |
Kind code of ref document: C1 Designated state(s): CA |
|
AL | Designated countries for regional patents |
Kind code of ref document: C1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
CFP | Corrected version of a pamphlet front page | ||
CR1 | Correction of entry in section i |
Free format text: PAT. BUL. 06/99 UNDER (30) REPLACE "NOT FURNISHED" BY "09/127554" |
|
AK | Designated states |
Kind code of ref document: C2 Designated state(s): CA |
|
AL | Designated countries for regional patents |
Kind code of ref document: C2 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
COP | Corrected version of pamphlet |
Free format text: PAGES 1/5-5/5, DRAWINGS, REPLACED BY NEW PAGES 1/5-5/5; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE |
|
NENP | Non-entry into the national phase |
Ref country code: CA |
|
122 | Ep: pct application non-entry in european phase |