Patent Document

FIELD OF THE INVENTION 
     This invention relates to bulk unsolicited electronic messages, in one embodiment, known as spam. In particular, the invention relates to an invention and apparatus for preventing spam from reaching an inbox or incoming mail folder of an email client. 
     BACKGROUND 
     One form of electronic communication includes electronic mail (“email”), which allows people to communicate with each other almost instantaneously, which in itself gives email a considerable advantage over conventional mail (also known as snail mail). However, email has several other advantages over snail mail, including the ability to send graphics, images, sound files, text, etc., within a single document. The term “email” as used herein is to be interpreted broadly to include any type of electronic message including voicemail messages, short message service (SMS) messages, multi-media messaging service (MMS) messages, facsimile messages, and other forms of communication. The above-mentioned advantages have resulted in email becoming almost ubiquitous in its popularity. 
     Concomitant with this rise in the popularity of this mail over snail mail, has been the rise in the number of bulk unsolicited email messages (also known as spam). Spam detracts somewhat from on the advantages of email in that it is annoying to receive and can lead to a reduction in productivity. 
     The growth in spam has spawned a whole generation of anti-spam software that essentially seeks to filter out spam before it is delivered to the inbox of an email client. Generally, anti-spam software makes use of anti-spam filters that filter email based on the content of the email. For example, certain words and phrases such as “making money,” are known to be commonly used by spammers (the people who send spam) so that a filter can be designed to filter out email that use these words and phrases. 
     However, sometimes an email publication such as an email newsletter to which an email user is subscribed may end up being erroneously blocked as though it was spam because to a spam filter the email publication has attributes that make it resemble spam, e.g., the email newsletter may contain words commonly used by spammers. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  shows an architecture within which embodiments of the present invention may be practices; 
         FIG. 2  shows a functional block diagram of software in accordance with one embodiment of the invention; 
         FIG. 3  shows a high level functional block diagram of a client in accordance with one embodiment of the invention; 
         FIGS. 4 to 6  illustrates methods in accordance with embodiments of the present invention; and 
         FIG. 7  shows a high-level block diagram of hardware that may be used to implement the methods of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     In one embodiment, the present invention discloses a technique in which a client makes use of a remote server to determine if an electronic message or communication has been registered. If the message has been registered then the message is delivered to an inbox of the client, otherwise appropriate action may be taken including deleting the message or placing it in a folder that contains only filtered messages. In another embodiment, the client maintains a subscribed list and an unsubscribed list. A user of the client has the ability to toggle messages between the subscribed and unsubscribed lists. In one embodiment, after it is determined that a message is registered then a further check is performed to determine if the message appears on the unsubscribed list. If the message appears on the unsubscribed list then it is not delivered to the inbox and may, in some embodiments, be automatically deleted. If the message appears on the subscribed list then the message is placed in the inbox. Thus, embodiments of the present invention afford a user the ability to manage subscriptions to selected electronic publications and messages. For example, the user is able to manage subscriptions to email distribution lists or publications. Other advantages of the present invention will become apparent from the following description. 
     In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention can be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the invention. 
     Reference in this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments. 
     Although the present invention has been described with reference to specific exemplary embodiments, it will be evident that the various modification and changes can be made to these embodiments without departing from the broader spirit of the invention as set forth in the claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than in a restrictive sense. 
       FIG. 1  of the drawings shows a high level system architecture  100  within embodiments of the present invention may be practiced. The architecture  100  includes a client machine  102  which is connected to a wide-area network  114 , which in some embodiments may include the internet. The client machine  102  may be any electronic device capable of sending and receiving messages. For example, the client machine  102  may be a mobile telephone, or Personal Digital Assistant (PDA), a Pocket PC, a 2-way pager, etc. The client machine  102  also includes a client  104  which allows a user of the client machine  102  to send and receive messages. The invention as described herein would apply to wired as well as wireless forms of transmitting messages. 
     The architecture  100  also includes a server  106  which is connected to the wide-area network  114 . In some embodiments, the server  106  may be a server such as is described in co-pending U.S. patent application Ser. No. 10/700,911, which is hereby incorporated by reference. The server  106  also includes logic to filter software  108  which will be described in greater detail with reference to  FIG. 2  of the drawings. In one embodiment, the logic to filter would include antispam software  108 . Reference numeral  110  indicates a content publisher which includes any entity that publishes subscription-based publications. An example of a subscription-based publication includes an email distribution list. As will be seen, the content publisher  110  includes a subscription interface  112  which is connected to the wide-area network  114 . The purpose of the subscription interface  112  is to manage subscriptions to the publications published by the content publisher  110 . 
       FIG. 2  of the drawings shows a high-level functional block diagram of components of the logic to filter  108  that are of relevance for purposes of this description. Referring to  FIG. 2 , it will be seen that the logic to filter  108  includes a content publisher registration module  108 A. The module  108 A enables the content publisher  110  to register a publication or message with the server  106  as will be described below. The logic to filter  108  also includes a database of registered publications  108 B and a client interface  108 C that interfaces with the client machine  102  as will be described. 
     Referring to  FIG. 3  of the drawings, a high-level functional block diagram showing the functional components of the client  104  is shown. As will be seen, the client  104  includes an unsubscribed list  104 A and a subscribed list  104 B, as well as an authentication module  104 C. The function of each of these components will become apparent from the description below. 
     Referring to  FIG. 4  of the drawings, operations performed by the content publisher  110 , and the server  106 , in accordance with one embodiment, in order to register a publication is shown. Referring to  FIG. 4 , at  400  the content publisher  110  sends details of the publication to be registered to the server  106 . The details are sent over the wide-area network. Thereafter at  402 , the server  106  registers the publication. The particular operations performed in registering the publication include, in some embodiments, assigning a random and unique address to the content publisher for the publication and assigning an identification number (ID) to the publication. The unique address, the assigned ID and the name of the publication are then stored in the database  104 B of registered publications (see  FIG. 2 ). At  404 , the server  106  sends the unique address assigned to the publication to the content publisher  110 . The content publisher  110  places the unique assigned address at the top of a distribution list for the publication. After completion of operations  400 ,  402 , and  404 , the publication is registered. 
     Referring to  FIG. 5  of the drawings, an interaction between the content publisher  110 , the client machine  102 , and the server  106 , in accordance with one embodiment, is shown. As will be seen, at  500 , the content publisher  110  sends content associated with a publication in the form of a message to the client machine  102 , over the wide-area network  114 . The message is also automatically sent to the server  106  since the unique assigned address is at the head of the distribution list for the publication. The server  106  accesses the message and computes a signature therefore, which signature is then associated with the ID for the publication. This process is called “content registration.” 
     In one embodiment, during the above-described content registration process, there is an authentication of the content publisher  110 . This authentication of the content publisher  110  may occur because the unique address assigned to the publication is both random and unique. Therefore, the content publisher  110  has knowledge of the unique random email address. Thus, when the publication is sent to the unique random address, the server  106  can treat all incoming publications to the unique assigned address as belonging to a previously registered publication. 
     Using a random and unique address for purpose of registration is motivated by ease of use. The content publisher  110  does not have to modify its existing infrastructure to participate in the publication registration and content registration processes described above. However, it is to be appreciated that in some embodiments, instead of using the implied authentication mechanism described above, an explicit authentication of the content publisher  110  and the publication or message sent by the content publisher  110  may be performed. For example, in one embodiment, public key cryptographic based methods may be used. In such a case, the content publisher  110  will provide a public key associated with a secret key which will then be used to digitally sign messages for content registration. 
     At  502 , the client machine  102  receives a message associated with a publication and computes a signature of the content of the message. At block  504 , the client generates a request to determine if the message has been registered at the server  106 . The request  504  includes a signature computed at  502 . In one embodiment, the signature may be a one-way hash of the content of the message or some other derivative of the content of the message. At  506 , the client  104  sends the request to the server  106 . The request is received by the logic to filter  108  of the server  106  which then determines at  508 , if the signature is registered. This determination involves using the signature as a key to search the database of registered messages to determine if the signature has been previously registered and associated with a registered publication in database  108 B. If the signature has been registered then the ID assigned to the signature is retrieved and sent to the client  104  at  510 . If the logic to filter  108  determines that the signature has not been registered then at  510  an appropriate message is sent to the client  104  to notify the client that the signature has not been registered. In some embodiments, the client may be configured to classify a registered message as legitimate, and to classify non-registered messages by a process of default classification which is described below. 
     Referring to  FIG. 6  of the drawings, an interaction between a user  600 , the client machine  102 , and the server  106 , in accordance with one embodiment of the invention, is shown. At  602 , the user  600  provides input to move a publication between the subscribed and unsubscribed lists  104 B, and  104 A, respectively. For example, in one embodiment, the client  104  provides a user interface (UI) that includes a “block” and “unblock” button. By selecting the block and unblock buttons, the user  600  may selectively indicate to the client  104  that a publication needs to be placed on the subscribed or unsubscribed lists  104 B, and  104 A, respectively. In response to receiving the input, at  604 , the client  104  updates the subscribed and unsubscribed lists based on the input. At  606 , the client  104  receives a message from the content publisher  110 . Thereafter operations  608 ,  610 ,  612 ,  614 , and  616  are performed which correspond substantially to the operations  502 ,  504 ,  506 ,  508 , and  510  shown in  FIG. 5  of the drawings. Thus, the operations  608  through  616  are therefore not further described. 
     At  618 , the client  104  moves the message into the inbox if the message was registered at the server  106  and the associated publication appears in the subscribed list  104 B. If the message is registered with the server  106  and the associated publication appears on the unsubscribed list  104 A, then an action is performed based on a configuration of the client  104 . For example, the client  104  may be configured to delete the message if it is registered and appears on the unsubscribed list. Alternatively, the client  104  may be configured to place the message in a folder if the message is registered at the server  106  and appears on the unsubscribed list  104 A. 
     In one embodiment, the server  106  computes a rating. The rating provides an indication of the number of users who have indicated that the message, and consequently the publication, is unwanted (e.g., spam) using the system described in co-pending U.S. patent application Ser. No. 10/700,911. In one embodiment, the rating is available through a dynamic web service for display on the content publisher&#39;s website. In some cases, the rating allows the client  104  to determine a default characterization of a message in the case of a user who has not made an explicit decision on whether or not the user wishes to receive the publication. More detail on how the client  104  uses a rating to determine the default characterization is provided below. In one embodiment, the rating is referred to as a spamminess rating. In alternative embodiments, the rating may be based on alternative attributes, without departing from the scope of the invention. 
     In one embodiment, the server  106  determines a popularity rating of all registered messages. The popularity rating is calculated on the basis of how many users query a server for an indication of whether a message is unwanted (e.g., spam). The popularity rating is sent by the server  106  to the content publisher  110 , who may then publish the popularity rating on the associated website. 
     It will be appreciated that if a message is received for the first time there will be no entry corresponding to message in either the subscribed list  104 B or the unsubscribed list  104 A. In this case, the client  104  may determine a default characterization for the publication or message. The default characterization may be based on the above described rating, popularity rating, or some other rule. For example, in one embodiment, if the rating is high, the client  104  will by default characterize the message as unwanted. Alternatively, if the rating is low, then the client  104  may automatically will by default characterize the message as legitimate. The values for a high rating and a low rating may be user configured. 
     It will be appreciated that if a publication or message is received for the first time there will be no entry corresponding to publication or message in either the subscribed list  104 B or the unsubscribed list  104 A. In this case, the client  104  may determine a default characterization for the publication or message. The default characterization may be based on the above described rating, popularity rating, or some other rule. For example, in one embodiment, if the rating is high, the client  104  will by default characterize the publication or message as unwanted. Alternatively, if the rating is low, then the client  104  may automatically will by default characterize the publication or message as legitimate. The values for a high rating and a low rating may be user configured. 
     Referring to  FIG. 7  of the drawings, reference numeral  700  generally indicates hardware that may be used to implement the server  106 , the client machine  102 , or the content publisher  110 , in accordance with one embodiment. The hardware  700  typically includes at least one processor  702  coupled to a memory  704 . The processor  702  may represent one or more processors (e.g., microprocessors), and the memory  704  may represent random access memory (RAM) devices comprising a main storage of the hardware  700 , as well as any supplemental levels of memory e.g., cache memories, non-volatile or back-up memories (e.g. programmable or flash memories), read-only memories, etc. In addition, the memory  704  may be considered to include memory storage physically located elsewhere in the hardware  700 , e.g. any cache memory in the processor  702 , as well as any storage capacity used as a virtual memory, e.g., as stored on a mass storage device  710 . 
     The hardware  700  also typically receives a number of inputs and outputs for communicating information externally. For interface with a user or operator, the hardware  700  may include one or more user input devices  706  (e.g., a keyboard, a mouse, etc.) and a display  708  (e.g., a Cathode Ray Tube (CRT) monitor, a Liquid Crystal Display (LCD) panel). 
     For additional storage, the hardware  700  may also include one or more mass storage devices  710 , e.g., a floppy or other removable disk drive, a hard disk drive, a Direct Access Storage Device (DASD), an optical drive (e.g. a Compact Disk (CD) drive, a Digital Versatile Disk (DVD) drive, etc.) and/or a tape drive, among others. Furthermore, the hardware  400  may include an interface with one or more networks  712  (e.g., a local area network (LAN), a wide area network (WAN), a wireless network, and/or the Internet among others) to permit the communication of information with other computers coupled to the networks. It should be appreciated that the hardware  700  typically includes suitable analog and/or digital interfaces between the processor  702  and each of the components  704 ,  706 ,  708  and  712  as is well known in the art. 
     The hardware  700  operates under the control of an operating system  714 , and executes various computer software applications  716 , components, programs, objects, modules, etc. (e.g. a program or module which performs operations described with reference to  FIGS. 3-5  of the drawings). Moreover, various applications, components, programs, objects, etc. may also execute on one or more processors in another computer coupled to the hardware  700  via a network  712 , e.g. in a distributed computing environment, whereby the processing required to implement the functions of a computer program may be allocated to multiple computers over a network. 
     In general, the routines executed to implement the embodiments of the invention, may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as “computer programs.” The computer programs typically comprise one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause the computer to perform operations necessary to execute elements involving the various aspects of the invention. Moreover, while the invention has been described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate that the various embodiments of the invention are capable of being distributed as a program product in a variety of forms, and that the invention applies equally regardless of the particular type of machine or computer-readable media used to actually effect the distribution. Examples of computer-readable media include but are not limited to recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, and optical disks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks, (DVDs), etc.). 
     Although the present invention has been described with reference to specific exemplary embodiments, it will be evident that the various modification and changes can be made to these embodiments without departing from the broader spirit of the invention as set forth in the claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than in a restrictive sense.

Technology Category: h