1. Field of the Invention
The present invention is directed to processing electronic messages in an electronic message provider system.
2. Description of the Related Art
Reducing the spam or unsolicited commercial email (UCE) that is sent to users of a mail service has been a major problem for mail service providers for some time. Additionally, email sources posing as a legitimate company often attempt to persuade users to open damaging emails sent to the user. Once a user opens the mail, the email proceeds to download graphics from a server. To download the graphics, a request is sent from an application (such as a browser application) on the user's computer to a server providing the graphics. When the server receives the graphics request from the mail application, the sender knows that the recipient address is a valid email account that is used by a person who has opened the email. The sender of the email can then sell this information (the valid recipient address) to spammers and/or use it for their own benefit.
In yet another fraudulent use of email called “phishing”, an email may contain content informing the user that certain identification, financial or personal information is needed for some account (for example, a credit card to confirm the user's email account, a credit card and password to confirm a bank account or online payment account). The emails provide a hyperlink that users can select. Once selected, the user is presented with an appropriate page to submit their information. The hyperlink in these emails directs the user to a web site associated with the perpetrator. The web site often looks very much like a legitimate company's web site. Many users are fooled by this type of email and provide the requested financial or personal information. The perpetrators can then sell the user's information, engage in identity theft of the user, and cause other financial harm and inconvenience to the user.
A few companies have implemented solutions to prevent these fraudulent uses of email. For example, some companies do not download graphics within a received email viewed by a user. These solutions only download the graphics from a web server and show them in the email once the user chooses to download them. In addition, some services attempt to confirm that a received email comes from the sender it claims to have originated from. Examples of this type of service include Sender ID from Microsoft Corporation of Redmond, Wash., and DomainKeys Identified Mail (DKIM), developed by Yahoo! Incorporated of San Jose, Calif. and Cisco Systems, Inc., of San Jose, Calif. The problem with these ad-hoc solutions is that many users do not understand the technologies or the threat these emails pose them, and new technologies must be introduced often to combat new types of email-based threats. As a result, the current solutions for combating fraudulent use of email are often too complex for the casual user of an email service.
In one embodiment, the invention herein implements a multiple tier system for classifying the safety level of an electronic message. The multiple tiered system may include safety classification levels of safe, medium, and unsafe. A user interface can distinguish between classification levels using a safety information interface. The safety information interface provides information about the message and allows a user to provide input regarding the desirability of the message. In addition to having a safety information interface, messages having a different safety classification can be displayed according to tiered display settings. Depending on the message safety level, the display settings can disable hyperlinks and attachments as well as prevent certain portions of the message from being displayed to user. An algorithm can be used to determine whether received messages are from a known source and whether they pass a source domain query (or come from a system not compatible with the source domain system). Each message is then rated based on the results of the analysis. The message rating, or safety level, is then used to define the options for viewing and interacting with the message.
In one embodiment, a method for processing a message begins with receiving a message. Next, one of at least three safety levels is selected for the received message. Safety level information is then provided in an interface. The safety level information is associated with the selected safety level.
In another embodiment, a method for providing an electronic mail service begins with providing a plurality of mail servers by an electronic mail provider. The plurality of mail servers then receives an electronic message for a user having an account with the electronic mail provider. Next, the plurality of mail servers determines one of at least three safety levels for the message. An interface is then provided for the user. The interface has safety level information associated with the selected safety level.
In another embodiment, one or more processor readable storage devices having processor readable code embodied on one or more of the processor readable storage devices is used to implement the invention. The processor-readable code is used for programming one or more processors to perform a method. The method begins with accessing an electronic message sent to a recipient from a sender. Next, a safety level of the electronic message is determined. The electronic message is then processed in response to receiving safety level input from a user.
A multiple tier system is provided for classifying the safety level of an electronic message. The multiple tier system can include safety classification levels of safe, medium, and unsafe. A user interface distinguishes messages using a safety information interface. The safety information interface provides information about the message and allows a user to provide input regarding the desirability of the message. An algorithm can be used to determine whether received messages are from a known source and whether they pass a source domain query (or come from a system not compatible with the source domain system). For example, the source domain query may be provided by a service such as SenderID or DKIM. Each message is then rated with a safety level based on the results of the analysis. Display settings associated with each safety level govern how messages are initially displayed to a user. Once the message is displayed, a user may provide input regarding whether the message is desirable or not. Based on the input, processing may be performed to the message. Additionally, user preferences for processing subsequent received messages may be adjusted.
As discussed above, the plurality of safety levels for a message may include safe, medium-safe, and unsafe. A “safe” safety level indicates that a message has not been identified to contain undesirable content or be received from an undesirable source. Safe messages may include messages received from a sender listed in a user's contact list, allowed senders list, or allowed mailing lists. A safe message may also include a message a user has selected to allow. All content will be shown in messages classified as “safe.” A message having a safety level of “medium” safe may or may not be received from an undesirable source or include undesirable content. In one embodiment, at least a portion of the content of a medium safe message will be displayed. In addition to displaying a portion of the content, a safety information interface can be provided to the user. The safety information interface may include elements such as example user-selectable links. The user-selectable links or buttons (hereinafter, collectively referred to as “links”) enable the user to indicate the desirability of the message. For example, links can allow the user to indicate whether a message should be kept (allowed) or moved to a user's junk folder (marked as junk). A message having a safety level of “unsafe” has been determined to either come from an undesirable source or to have undesirable content. A message may be classified as unsafe automatically or after receiving user input that the message or sender is undesirable. When messages having a safety level of unsafe are displayed, all or a portion of their content are withheld from the user. This is advantageous to users because it protects them from fraud and identity theft as well as preventing them from seeing content that may be offensive to them. These messages can be moved directly to a user's junk mail folder upon receipt by the mail provider system.
A received message may be identified as being associated with a mailing list. In this case, the user received the message because the user's email is listed in a mailing list. If input is received from the user indicating the message from the mailing list is undesirable, the user can be automatically unsubscribed from the mailing list. In one embodiment, an unsubscribe email address is retrieved from the received message. The user is unsubscribed by sending a message to the retrieved unsubscribe email address. Automatically sending a message to an unsubscribe email address associated with a received mailing list message is discussed in more detail below.
System 105 includes mail web server 110, mail server 120, mail receiving agent (MRA) 130, address book clearing house (ABCH) 140, mail store 150, and spam filtering engine (SFE) 135. System 105 may implement a Not Junk Reporting Service (NJRS) and a Junk Reporting Service (JRS). An NJRS is used to process requests regarding messages to be moved out of a junk mail folder. A JRS is used to process requests regarding messages to be moved into a junk mail folder (for example, from a user's junk folder to the user's inbox). As illustrated in system 105 of
Mail web server 110 may transmit and receive messages with mail server 120 and computing device 160. Mail web server 110 includes NJRS 112, JRS 113, and a message analysis engine (MAE) 114. An MAE is used to analyze a received message and determine a safety level to associate with that message. As with the JRS and NRS, an MAE may be implemented in any of several locations within and outside system 105. For example, an MAE may be implemented within mail web server 110, mail server 120, computing device 160 and computing device 170. Operation of an MAE is described in more detail below with respect to
Mail server 120 may transmit and receive messages with ABCH 140, mail store 150, mail web server 110, MRA 132 and computing device 170. Mail server 120 includes NJRS 122, JRS123 and MAE 124. As indicated in
MRA 130 receives incoming messages for users having an account with the mail service provided by the mail service provider of system 105. In addition to receiving user messages, MRA 130 may transmit and receive messages with mail server 120, SFE 135, ABCH 140 and mail store 150. MRA 130 may include spam filter engine (SFE) 132. An SFE filters received messaged based on whether or not they are identified as spam or unsolicited commercial email (UCE).
SFE 135 filters received messaged to determine if they are spam or UCE. SFE 135 includes NJRS 136 and JRS 137. SFE 135 may receive and transmit messages with MRA 130 and mail store 150. As illustrated in
Computing device 160 includes browser application 165. Optionally, computing device 160 may also include MAE 167. In this case, MAE 167 may be implemented with JavaScript or some other script language. When implemented as JavaScript, MAE 167 may be implemented within browser application 165. In a web based email system, MAE 167 is part of system 105 as indicated in
Computing device 170 includes mail client 175. Optionally, computing device 170 may also include MAE 179. In this case, MAE 179 is stored in the memory of computing device 170 and implemented as part of mail client 175. In a client based system, MAE 179 is part of system 105 as indicated in
In operation, a message for a user of the mail service provided by system 105 is received by MRA 130. The received message is sent to system 105 by ISP 180 over network 190. Once received, MRA 130 may filter the message to determine if it is considered spam, a UCE or some other type of undesirable message. In another embodiment, the received message is forwarded to SFE 135, where the received message is analyzed to make this determination. MRA 130 also determines if the recipient address for the message is a valid address. In one embodiment, this determination is made by querying ABCH 140 for confirmation of a user account that matches a recipient address in the received message. If the message is determined to not be spam or UCE, and a user matches a recipient address of the message, the message is forwarded to mail store 150 where it is stored until it is deleted. Mail store 150 determines for which user the message should be stored for by accessing user information from ABCH 140.
When system 105 receives a request for a message for a user, the user's message is retrieved from mail store 150. Users having an account with a mail service provider may view their messages through web based or client based systems. For a web based mail service, a user may access mail through a browser application. For a client based system, a user may access mail through a client application. For example, when using a client-based system, a user can provide input to computing device 170 to retrieve the mail from system 105 through mail server 120. When using a web based mail service, a user can provide input to an interface provided by browser application 165 stored on and executed by computing device 160. Browser application 165 then sends a request to mail web server 110. The message information provided to the mail client or browser application in response to the message request includes safety level information as determined by the MAE when the message is initially received by system 105.
The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, mobile phones or devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
With reference to
Computer 210 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 210 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computer 210. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.
The system memory 230 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 231 and random access memory (RAM) 232. A basic input/output system 233 (BIOS), containing the basic routines that help to transfer information between elements within computer 210, such as during start-up, is typically stored in ROM 231. RAM 232 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 220. By way of example, and not limitation,
The computer 210 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
The computer 210 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 280. The remote computer 280 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 210, although only a memory storage device 281 has been illustrated in
When used in a LAN networking environment, the computer 210 is connected to the LAN 271 through a network interface or adapter 270. When used in a WAN networking environment, the computer 210 typically includes a modem 272 or other means for establishing communications over the WAN 273, such as the Internet. The modem 272, which may be internal or external, may be connected to the system bus 221 via the user input interface 260, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 210, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
The domain server check for a message may determine if the indicated source of the message is valid or not. For example, the source address of a message can be associated with a particular domain. The domain can be queried to determine what source addresses are allowed to send messages. If the server from which the message claims to be sent from is not a server allowed to send messages, the domain check will fail for that message. In this case, the safety level of the message will be set to unsafe. Selecting a safety level for a message is discussed in more detail below in
In one embodiment, the user may be provided with the same message interface regarding safe, medium safe and unsafe messages if any of a number of other methods is used to determine message authenticity. Thus, as methods for verifying message authenticity proliferate, the messaging system described herein can be used to inform the user of such in a consistent manner. The messaging system thereby allows users to protect themselves from unsafe messages without requiring that they understand the technical details used to authenticate a particular message.
Safety level information is provided in an interface at step 330. The provided safety level information is associated with the safety level selected at step 320. The interface may be provided by a browser application or a client application. In one embodiment, the interface may include a notification if the message safety level is determined to not be safe. The notification provided in the interface may be positioned within a safety information interface. In some embodiments, if the message safety level is safe, there may be no notification or a safety level interface that indicates the user need not do anything. This is discussed in more detail below. In particular, examples of safety information interfaces are discussed in more detail with respect to
A safety information interface associated with a message may allow a user to indicate the desirability of the message. For example, the interface may include user selectable links. The links may enable a user to provide input as to whether the message should be allowed, sent to a junk folder, or some other action. If the safety level of the message has changed as a result of user input, the message can be processed accordingly. This is discussed in more detail below in
A determination is made as to whether the received message is identified as a newsletter at step 420. In one embodiment, a newsletter can be received from one of many sources. These sources include a mail service provider, a partner of the mail service provider, or some other entity. In any case, a newsletter may be used to communicate a welcome or congratulations message, a service update, a member letter or notification, or some other message to mail service users. Newsletters may be recognized by their content, header, or other data. If the received message is identified as a newsletter at step 420, operation continues at step 425. If the received message is not identified to be a newsletter, operation continues to step 430. At step 425, the message is identified as a newsletter. In one embodiment, an interface associated with the newsletter can be provided to the user. User input received through the interface can be used to determine whether or not the newsletter is desirable and should be sent to a junk folder or not. The interface displayed and additional processing performed as a result of identifying a newsletter can be similar to that for identifying a mailing list. An example of a mailing list interface is illustrated in
A determination is made as to whether the received message failed a domain source query at step 430. In one embodiment, a domain source query determines whether the message came from a legitimate domain server. A message may indicate a domain from which it originated. For example, info@movie.com comes from the domain “movie.com” A query can be made to the domain associated with a message to determine what servers it uses to send mail. In one embodiment, a DNS check can be used to confirm if a server is allowed to send mail for a particular domain. A domain source query may return a pass, fail, or unknown result. In one embodiment, a message does not fail the domain source query if the results of the domain source query are either pass or unknown. In some embodiments, if no sender address can be determined to make the domain source query, then the query is considered failed. As discussed above, examples of domain source query services include Sender ID and DKIM. If the received message fails a domain source query at step 430, operation continues to step 435 where the safety level of the message is set to unsafe. If the message did not fail the domain source query, operation continues to step 440.
A determination is made as to whether the received message is from a known sender at step 440. A message may be from a known sender if the sender is in the user's mail contact list, instant messaging contact list, allowed senders list, or some other list associated with the user. An allowed senders list is a list of message source addresses, or senders, from which incoming messages should be accepted. Similar to a contact list, an allowed senders list may be maintained for each user having an account with a mail provider service. If the message is from a known sender, operation continues to step 445. If the message is not from a known sender, operation continues to step 450. At step 450, the safety level of the message is set to medium safe. In one embodiment, when a user requests to view a message having a safety level of medium safe, an interface is provided that incorporates the settings of table 360 of
A determination is made as to whether a domain source query address is present and known at step 445. From step 430, the domain source query result at step 445 is either “unknown” or “pass.” If the address is present and known, operation continues to step 455. If the address is not present or not known, operation continues to step 450 where the safety level of the message is set to medium safe.
A determination is made as to whether two requirements are satisfied at step 455. The two requirements are that the user is not on the recipient list of the message and a sender header must be present in the received message. In one embodiment, the two requirements of step 455 determine whether or not the message is associated with a mailing list. If the two requirements at step 455 are met, operation continues at step 460. If the two requirements are not met, operation continues to step 470.
A determination is made as to whether a list unsubscribe, x-mailing list, or mailing list header is present at step 460. If an appropriate header is present at step 460, then operation continues to step 465 wherein the safety level for the message is set to safe. In one embodiment, a safety level of safe has display settings as illustrated in table 360 of
A determination is made as to whether the current user is in the recipient list of the message or the recipient is in an allowed mailing list of the user at step 470. If either of these conditions is found true, operation continues to step 475 wherein a junk mail mailing list toolbar is provided to a user within a user interface. If neither of these conditions is found true, operation continues to step 480 wherein a junk mail and allow sender mailing list toolbar is provided to the user. Unlike the toolbar provided at step 475, the toolbar provided at step 480 allows a user to indicate whether the message should be classified as junk as well as whether the message should be allowed.
When a received message associated with a safety level is provided for display, the message display may include information associated with the safety level. The safety level information provided in the message display may differ for each safety level.
In one embodiment, when a message received from a mailing list is displayed for a user, the safety level information of the message is displayed as well. After the message is displayed, further processing may be performed, including unsubscribing the user from the mailing list.
In one embodiment, because spammers can add mailing list headers in order to determine if a live-person exists at that account, it is important to ensure that the unsubscribe option is only presented to users for “safe” emails. Safe emails have an added level of trust because the user has already added the sender to their mailing list and a determination has been made that the message originated from the intended source. As a result, the chances of such messages being used to nefarious ends is reduced.
A “Mark as Junk” link is displayed in a safety information interface at step 915. The link is displayed within the interface once a user requests to view the message. An “allow” link need not be displayed for the particular message because the message has already been identified as safe in method 400. An example of a “Mark as Junk” link displayed in an interface is illustrated in
At step 940, an “Unsubscribe” link is displayed within the safety information interface for the displayed message. In one embodiment, the user selectable link allows a user to unsubscribe from the mailing list associated with the received message. An example of an interface having an unsubscribe link is illustrated in
A determination is made as to whether the list-unsubscribe information is an email address at step 950. If the list-unsubscribe information is an email address, an email is sent to the unsubscribe address at step 955. The email is sent automatically on behalf of the user and unsubscribes the user from the mailing list associated with the message. If the list unsubscribe information is not an email address, operation continues to step 960. A new interface within a browser application is opened with an unsubscribe URL at step 960. The unsubscribe URL is opened automatically on behalf of the user such that the user may indicate that he or she intends to unsubscribe from the newsletter. Unsubscribing from an email list is handled differently than unsubscribing to a URL because an email unsubscribe can positively identify the sender and unsubscribe them appropriately. Unlike using email to unsubscribe, accessing a URL to unsubscribe often lead to a separate page where the user must enter their email address before unsubscribing. Operation then continues to step 935 where the mailing list message is moved to the user junk folder.
The user is queried as to whether to enable reporting messages to a JMR system at step 1004. If the user response enables reporting messages to a JMR system, operation continues to 1006. If the user response indicates that the user does not wish to enable reporting to a JMR system, operation continues to step 1012. An EnableJMR reporting flag is set at step 1006. The setting of this flag indicates that JMR reporting should be enabled. Processing of flag settings in response to selection of a “Mark as Junk” link is discussed in more detail below with respect to
A flag is set indicating that the source address of the received message is to be added to the user's BlockSender list at step 1032. In one embodiment, rather than setting a flag at step 1032, the sender address is immediately added to the user's BlockSender list. In some embodiments, before the BlockSender flag is set or before the source address is added to the BlockSender list, a determination is made as to whether the sender of the email is legitimate. Making this determination before adding a sender to the user's block list prevents adding a false source address to the block list, which can have a limited number of entries. For example, the determination may begin with performing a DNS query to determine if the source of the message can receive email. The query may be placed to a remote DNS server or some other source. The query results in receiving information regarding whether or not the server associated with the message source may received electronic messages. If the server can not receive electronic messages, the source address should not be added to the block list because it is not a valid source. In this case, the source address was likely chosen by an illegitimate message sender and will not likely be used again as often as a legitimate source address that sends unwanted messages.
A determination is made as to whether a user has block entries available in the user's block list at step 1024. In one embodiment, each user is associated with a block list. The block list includes entries consisting of senders of messages. A message sent to a user from a sender listed in a user's block list will be “blocked” and not delivered to the user. If the user has blocks available in the user's block list, operation continues at step 1030. If the user does not have blocks available in the block list, operation continues to step 1026.
The system of the present invention determines whether other mail sources from the domain exist from the user's block list at step 1030. This determination is performed to enquire whether the user may wish to block subsequent messages from all senders associated with the domain of the received message. For example, a currently received message may be from a sender such as info@movie.com. A block list entry may consist of newsletter@movie.com, having the same domain (movie) as the received message. In this case, another mail source from the domain exists in the block list. If other mail sources from the domain exist in the block list, operation continues to step 1034. If other mail sources from the domain do not exist from the block list, operation continues to step 1032.
Entries from the domain of the received message may also exist in the user's save list. A determination is made as to whether other entries from the domain exist in a user's save list at step 1034. A save list contains a number of entries similar to that of a user's block list. However, the entries of a save list consist of sender addresses from which messages should be saved rather than deleted. If entries from the domain of the received message exist in the user's save list, operation continues to step 1032. In this case, the particular sender will be blocked but the entire domain should not be blocked. If no other entries from the domain of the received message exist in the save list and the domain is not in the “KnownDomain” list, operation continues to step 1036. The “KnownDomain” list is a list of mail domains that are not to be entirely allowed or blocked. Examples include hotmail.com, yahoo.com, etc. If the user allows this domain it would open them up to a lot of senders some of whom may be spammers and scammers; similarly if they block these domains they may be blocking many emails that they actually wish to receive.
Since the user contains an entry in their block list from the domain of the received message, but not in their save list, the user may wish to block all messages form the domain. A determination is made as to whether a user wishes to block the domain of the received message at step 1036. In one embodiment, a query is made to make this determination. If at step 1036 a user indicates that the domain should be blocked, operation continues to step 1038. If the user indicates the domain should not be blocked, operation continues to step 1032. At step 1032, a block sender flag is set. In another embodiment, rather than setting a flag, the sender's address is immediately added to the user's BlockSender list. This indicates that the sender of the currently received message should be blocked. Operation then continues to step 1040. At step 1038, a block domain flag is set. This flag indicates that all subsequent messages received from the domain associated with the received message should be blocked. Operation then continues to step 1039. In another embodiment, rather than setting a flag, the sender's address is immediately added to the user's BlockSender list. At step 1039, operation of method 1000 continues to step 1040 in
At step 1026, a determination is made as to whether the user wishes to send a bounce message to the source of the received message. In one embodiment, a user is queried to make this determination. Sending a Non-Delivered Report (NDR) (a.k.a. bounce message) to the source will simulate the message sent to a sender indicating that the intended recipient of the message does not exist. This technique is useful for mailing lists that consciously unsubscribe recipients who do not exist. Some of these mailing lists also have unsubscribe links in the content of their email, but many cautious email users do not click on links of unwanted email for fear of identifying themselves as a live body to spammers. If the user indicates that a bounce message should be sent to the source of the received message at step 1026, operation continues to step 1028. If the user indicates that a bounce message should not be sent to the source, operation continues to step 1039. At step 1028, a bounce message flag is set. The setting of this flag indicates a bounce message should be sent to the sender of the received message. Operation then continues to step 1039.
At step 1018, a determination is made as to whether the message source failed the domain source query. As discussed above, results of a domain source query are determined in method 400 and may include pass, fail, or unknown. If the message source failed the domain source query, operation continues to step 1039. If the message source did not fail the domain source query, operation continues to step 1020 where a block sender flag is set. In another embodiment, if few domains fall into an unknown state, the block sender flag may not be set if the message source does not fail the domain source query. Operation then continues to step 1039.
At this point in method 1000, the received message has been identified as undesirable by a user and from a mailing list. The user may wish to unsubscribe from the mailing list. A determination is made as to whether the list-unsubscribe information in the received message is in the form of an email address at step 1046. If the list-unsubscribe information includes an email address, then operation continues from step 1046 to step 1048. If the list-unsubscribe information in the received message is not in the form of an email address, operation continues to step 1052. At step 1052, a determination is made as to whether the user wishes to remove the recipient from the mailing list allowed senders list. In this case, in addition to having an allowed senders list for individual sender entities, a user may have an allowed senders list for mailing lists as well. In one embodiment, a system may query a user to determine whether to remove the recipient from the mailing list allowed senders list. If the recipient address should be removed form the mailing list allowed senders list at step 1052, operation continues to step 1054. If the address should not be removed from the mailing list allowed senders list, operation continues to step 1056.
A determination is made as to whether a user wishes to unsubscribe from a mailing list associated with the received message at step 1048. In one embodiment, the user may be queried to make this determination. If it is determined that the user wishes to unsubscribe from the mailing list associated with the received message at step 1048, operation continues to step 1050. At step 1050, an unsubscribe flag is set that indicates the user should be unsubscribed from the mailing list. After setting the Unsubscribe flag at step 1050, operation continues to step 1054. If the user does not wish to unsubscribe from the mailing list, operation continues to step 1052.
A RemoveMailingList flag is set at step 1054 indicating the user should be removed from this mailing list associated with the received message. Operation then continues to step 1056. A determination is made as to whether the user has reached a maximum rule limit at step 1056. In one embodiment, each user has a maximum number of rules they may associate with their account. If the user has not yet achieved the maximum number of rules for their account, then operation continues from step 1056 to step 1058. At step 1058, a CreateMailingListRule flag is set. This flag generates a new rule removing the recipient address from the allowed senders list. Operation then continues to step 1060. If at step 1056 the user has reached the maximum rule limit, operation continues to step 1060.
Since the user indicated the received message is not desired, the message should be placed in the user's junk folder if it is not already there. In another embodiment, the message may just be deleted from the system. A determination is made as to whether the received message is currently located in the user's junk mail folder at step 1060. If the message is currently located in the user's junk mail folder, operation continues to step 1064. If the message is not currently located in the user's junk mail folder, then operation continues to step 1062 where a MoveToJunkFolder flag is set. Setting this flag indicates the message should be moved to the user's junk folder. Operation then continues to step 1064. At step 1064 a junk request is submitted to a mail server. The junk request is generated in response to receiving input from a user indicating a message is undesirable. The request contains data and/or information that the receiving mail server can use to process the received message. Junk request data may also be used to adjust user preferences for processing subsequently received messages. In the case of a client application, for example, mail client 175 of
A mail server receives the junk request at step 1102. The junk request may be received from a browser application, mail client, or some other application from a remote computing device. A determination is made at step 1104 as to whether the SubmitToJMR flag is set. If the submit to JMR flag is set at step 1104 the received message for the user is submitted to the JRS at step 1106. In one embodiment, the message may be sent to a JRS within
A mail server may cause the received message to be bounced as a result of a user request received in method 1000. A determination is made as to whether the BounceMessage flag is set at step 1108. If the BounceMessage flag is not set, operation continues to step 1112. If the BounceMessage flag is set, operation continues to step 1110. A bounce message is sent indicating that the recipient address for the received message does not exist at step 1110. The bounced message is sent in response to receiving the received message for the user and indicates that the recipient address of the message is not valid. In one embodiment, MRA 130 can send the bounce message to the source of the received message. Operation then continues to step 1112.
All messages received from a domain should be blocked if the user indicated this preference at step 1038 of method 1000. A determination is made as to whether a BlockDomain flag is set at step 1112. If the BlockDomain flag is not set, operation continues to step 1116. If the BlockDomain flag is set at step 1112, operation continues to step 1114. The domain associated with the received message is added to the block list of the user at step 1114. Additionally, individual blocks for the domain that currently exist on the user's block list are removed. This serves to remove redundant block entries in the user's block list. As a result of adding the domain associated with the received message to the user's block list, subsequent messages received from a sender associated with the domain will not be accepted by the mail service provider. Operation then continues from step 1114 to step 1116.
Subsequent messages received from a sender which the user wishes to add to her block list in method 1000 should not be accepted. A determination is made as to whether a BlockSender flag is set at step 1116. If the BlockSender flag is not set, operation continues to step 1120. If the BlockSender flag is set at step 1116, operation continues to step 1118. The sender is added to the user's block list at step 1118. This serves to block subsequent messages received from the sender of the received message. In one embodiment, the block list may be maintained by a mail receiving agent, such as MRA 130 of
If the Unsubscribe flag was set at step 1050 of method 1000, the user should be unsubscribed from the mailing list associated with the received message. A determination is made as to whether the Unsubscribe flag is set at step 1120 of method 1100. If the Unsubscribe flag is not set, then operation continues to step 1124. If the Unsubscribe flag is set at step 1120, operation continues to step 1122. A mail is sent to the list-unsubscribe address associated with the received message at step 1122. In one embodiment, the message is sent by a mail transfer agent, or MTA (not illustrated in
If the user indicated that a recipient address be removed from the user's allowed senders list, the user indication can be carried out using a CreateMailingListRule flag. A determination is made as to whether a CreateMailingListRule flag is set at step 1124. If the CreateMailingListRule flag is not set, operation continues to step 1128. If the CreateMailingListRule flag is set, operation continues to step 1126. The recipient address listed in the received message is removed from the user's allowed senders list at step 1126. Subsequent received messages having the indicated recipient address will not be automatically saved. Operation then continues to step 1128.
The recipient address of the received message may be removed from the user's mailing list allowed senders list if indicated by the user at step 1052 of method 1000. A determination is made as to whether the RemoveMailingList flag is set at step 1128. If the RemoveMailingList flag is not set at step 1128, operation continues to step 1132. If the RemoveMailingList flag is set at step 1128, operation continues to step 1130. A rule is created to move mail sent to the recipient specified in the received message to the junk mail folder at step 1130. Once this rule is generated, subsequent messages addressed to this recipient, such as a newsletter or mailing list recipient address, will be placed in the user's junk mail folder. This rule may be implemented in a mail store, such as mail store 150 of
A determination is made as to whether a MoveToJunkFolder flag is set at step 1132. If a MoveToJunkFolder flag is not set, operation continues to step 1136. If a MoveToJunkFolder flag is set at step 1132, operation continues to step 1134. The received message is moved to the user's junk mail folder at step 1134. Operation then continues to step 1136.
JMR reporting enables junk mail messages to be reported to the junk mail reporting system. A JMR system may be maintained by a system administrator (not illustrated in
As mentioned above,
A determination is made as to whether the source address of the received message is on the user's block list at step 1220. If the source address is located on the user's block list, operation continues to step 1225. If the source address is located on the user's block list, operation continues to step 1230. An UnblockSender flag is set at step 1225. Setting the UnblockSender flag indicates the sender should be removed from the user's block list. Operation then continues from step 1225 to step 1230.
Since the user has indicated the received message is desirable, the sender of the message can be added to the user's allowed senders list if it has not reached its full capacity. A determination is made as to whether the user has reached a maximum allowed senders list limit at step 1230. If the allowed senders list associated with the user does not have the maximum number of entries, operation continues to step 1235. If the user's allowed senders list is full and no further entries may be added, operation continues to step 1255. At step 1235, a determination is made as to whether other senders from the domain of the received message are located on the user's allowed senders list in case the entire domain should be added. If other senders from the domain of the received message are listed on the user's allowed senders list, operation continues to step 1240. If other senders from the domain are not on the user's allowed senders list, operation continues to step 1250.
At step 1250, a determination is made as whether the user wishes to add the entire domain associated with the received message to the allowed senders list. In one embodiment, the user is queried to make this determination. If the user indicates that the entire domain associated with the received message should be added to an allowed senders list, operation continues to step 1245. If the user indicates that the entire domain associated with the received message should not be added to the allowed senders list, operation continues to step 1250.
In one embodiment, before the query is made, a check may be performed to determine if the domain is in the KnownDomain list. If so, the user will not be allowed to safelist the entire domain. This prevents a user from safelisting an entire domain when they likely intended to merely receive mail from a handful of users from that domain.
At step 1250, an AddSenderToSafeList flag is set. The AddSenderToSafeList flag causes the sender of the received message to be added to the allowed senders list. Operation then continues to step 1255. At step 1245, an AddSenderDomainToSafeList flag is set. This causes the domain associated with the received message to be added to the allowed senders list of the user. Operation then continues to step 1255. At step 1255, operation of method 1200 continues at step 1260 of
If operation continues to step 1265 in method 1200, then the received message is determined to be from a mailing list. A determination is made as to whether a rule exists to move mail sent to the recipient address of the received message to the user's junk mail folder at step 1265. If such a rule exists, the rule needs to be removed. If the rule does exist at step 1265, operation continues to step 1270. If the rule does not exist, operation continues to step 1275. At step 1270, a remove mailing list rule flag is set. The setting of this flag will indicate the mailing list rule should be removed by a mail server. Operation then continues to step 1275.
A determination is made as to whether the recipient address is RFC compliant at step 1275. An RFC compliant address is one that meets requirements for the email protocols defined in the RFC documents (specifically 2821 and 2822) published by the Internet Engineering Task Force, IETF. In one embodiment, step 1275 is optional. If the recipient address is RFC compliant, operation continues to step 1280. If the recipient address is not RFC compliant, operation continues to step 1290. A determination is made at step 1280 as to whether space in the mailing list allowed senders list exists. If there is space in the mailing list allowed senders list at step 1280, then operation continues to step 1285. If there is no space in the mailing list allowed senders list, operation continues to step 1290. An AddToMailingList flag is set at step 1285. The setting of this flag indicates the mailing list address should be added to the user's mail list allowed senders list by a mail server. Operation then continues to step 1290.
Since the user indicated the received message is desirable, it should not be stored in the user's junk folder. A determination is made as to whether the received message is currently located in the user's junk mail folder at step 1290. If the message is currently located in the user's junk mail folder, operation continues to step 1295 where a MoveToJunkFolder flag is set. In one embodiment, the MoveToJunkFolder flag is set to false indicating that the message should not be moved to the junk folder, but rather moved out of the user's junk folder. In another embodiment, a flag separate from the MoveToJunkFolder flag may be used to move the received message out of the junk mail folder, for example, a MoveToInboxFolder flag. Operation continues from step 1295 to step 1298. At step 1298, a not junk request is submitted to a mail server. The not junk request is generated in response to receiving input from a user indicating a message is desirable. The request contains data and/or information that the receiving mail server can use to process the received message. Not junk request data may also be used to adjust user preferences for processing subsequently received messages. In a mail web service system, the not junk request is sent from computing device 160 to mail web server 110. In a client application email system, the not junk request is sent from computing device 170 to mail server 120. Processing of the not junk request by the particular mail server is described below with respect to
A mail server receives the not junk request at step 1305. In the case of a browser application, a mail web server, such as mail web server 110 of
If a user indicated that a sender should be added to their allowed senders list in method 1200, the mail server processing the not junk request may process the user's request. A determination is made as to whether an AddSenderToSafeList flag is set at step 1330. If an AddSenderToSafeList flag is not set, operation continues to step 1340. If the AddSenderToSafeList flag is set, operation continues to step 1335. The sender is added to the user's allowed senders list at step 1335. Adding the sender of the received message to the allowed senders list allows messages to be saved and not be placed in the user's junk mail folder. The allowed senders list may be maintained by MRA 130, mail store 150, SFE 135, mail server 120, and web server 110, or ABCH 140 of system 105. Operation then continues to step 1340.
If a user indicated that the domain associated with a received message should be added to their allowed senders list in method 1200, the mail server processing the not junk request may process the user's request. A determination is made as to whether an AddSenderDomainToSafeList flag is set at step 1340. If an AddSenderDomainToSafeList flag is set, operation continues to step 1345. If the AddSenderDomainToSafeList flag is not set, operation continues to step 1355. At step 1345, the sender domain is added to the user's allowed senders list. In this case, all subsequent messages received from a sender address associated with this domain added to the allowed senders list will be received by the user and subsequently placed in the user's inbox. Next, individual senders in the domain associated with the received message are removed from the user's allowed senders list at step 1350. Removing the individual allowed sender list entries prevents unneeded allowed senders list entries from being stored in the user's allowed senders list. Operation then continues to step 1355.
A determination may have been made in method 1200 to remove a rule that sends messages from particular sender to the user's junk folder. This rule may be removed if the user indicated a particular message from the sender is desirable. A determination is made as to whether a RemoveMailingListRule flag is set step 1355. If the RemoveMailingListRule flag is not set, operation continues to step 1365. If the RemoveMailingListRule flag is set, operation continues to step 1360 where the rule is removed. Removing the mailing list rule prevents subsequent messages received from the indicated message source from being automatically placed in the user's junk mail folder. Operation then continues from step 1360 to step 1365.
The mail server receiving the not junk request may add a mailing list associated with a received message to a mailing list allowed senders list if the appropriate flag is set in the not junk request. A determination is made as to whether AddToMailingList flag is set at step 1365. If the AddToMailingList flag is not set, operation continues to step 1375. If the AddToMailingList flag is set, operation continues to step 1370. The recipient of the received message is added to the user's mailing list allowed senders list at step 1370. This allows subsequent messages received from the particular mailing list to be placed in the user's inbox. Operation then continues to step 1375.
Another flag that may be set in the not junk request is the MoveToJunkFolder. If the flag is set appropriately during method 1200, it may indicate that a particular message should be moved out of the user's junk mail folder. A determination in made as to whether a MoveToJunkFolder flag is set at step 1375. If the MoveToJunkFolder flag is not set, operation continues to step 1385 where processing of the not junk request is complete. If the MoveToJunkFolder flag is set, operation continues to step 1380 where the message is moved to the inbox folder of the user. In one embodiment, the MoveToJunkFolder flag is set to false to indicate that the message should be moved to the inbox. In another embodiment, a separate flag, for example, a MoveToInboxFolder flag, may be used to indicate that the received message should be moved to the inbox. After the received message is moved to the inbox at step 1380, operation continues to step 1385 where processing of the not junk request is complete.
The foregoing detailed description of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the invention and its practical application to thereby enable others skilled in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto.