E-MAIL ADDRESS INSPECTION

Abstract
A method for e-mail address inspection may include providing a list of suggested or predicted addresses in response to a partial e-mail address being received. The method may also include checking the partial e-mail address for other possible matches in an electronic address book in response to an address being selected by a user from the list of suggested or predicted addresses. The method may further include presenting a warning in response to other possible matches and the selected address not being in a predetermined domain.
Description

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS


FIGS. 1A, 1B and 1C (collectively FIG. 1) are a flow chart of an example of a method for e-mail inspection in accordance with an embodiment of the present invention.



FIG. 2 is a block schematic diagram of an exemplary communication device and system for e-mail inspection in accordance with an embodiment of the present invention.





DETAILED DESCRIPTION OF THE INVENTION

The following detailed description of embodiments refers to the accompanying drawings, which illustrate specific embodiments of the invention. Other embodiments having different structures and operations do not depart from the scope of the present invention.


As will be appreciated by one of skill in the art, the present invention may be embodied as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, the present invention may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium.


Any suitable computer useable medium may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include some or all of the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission medium such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.


Computer program code for carrying out operations of the present invention may be written in an object oriented programming language such as Java, Smalltalk, C++ or the like. However, the computer program code for carrying out operations of the present invention may also be written in conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).


The present invention is described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.


These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.


The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.



FIGS. 1A, 1B and 1C (collectively FIG. 1) are a flow chart of an example of a method 100 for e-mail address inspection in accordance with an embodiment of the present invention. As used herein e-mail may include any type of electronic communication or electronic message service where an electronic address for a recipient of a message may be specified, entered or selected, including but not necessarily limited to e-mail, instant messaging, short message service or similar services. In block 102, a recipient or destination address entered by a user may be received. In block 104, a determination may be made if the entry by the user is a partial input or partial e-mail address. If a determination is made in block 104 that a partial e-mail address has not been entered, that is, a complete e-mail address has been entered by the user, the method 100 may advance to block 112 and the complete e-mail address may be placed in an address field of the e-mail being composed. If a determination is made in block 104 that a partial e-mail address has been entered in block 102, a list of suggested or predicted addresses may be provided or presented to the user in block 106. The list of suggested or predicted addresses may be recently used addresses or addresses from an address book, contacts list or the like stored on a communications device or elsewhere. In another embodiment of the present invention, the suggested or predicted addresses may be presented after the user has entered only a portion of a complete e-mail address.


In block 108, a flag or other indication may be set in response to the user selecting an address from the list of suggested or predicted addresses. In block 110, the partial e-mail address entry and the corresponding matching address selected by the user from the list may be saved in a memory of the communications device or elsewhere in a system. In block 112, the complete address selected by the user may be placed in the address field of the e-mail being composed.


In block 114, a determination may be made if another address has been received. If a determination is made in block 114 that another address or partial address has been received or entered, the method 100 may return to block 104 and the method 100 may proceed as previously described. If a determination is made in block 114 that another address has not been received, the method 100 may advance to block 116. In block 116, a message body entered into the communications device by the user may be received.


In block 118, a determination may be made if the flag has been set in response to the user selecting a suggested or predicted address in block 108. If a determination is made in block 118 that the flag is not set, the method 100 may advance to block 124 and the e-mail or other type communication may be sent. If a determination is made in block 118 that the flag has been set, the method 100 may advance to block 120.


In block 120, the partial entry or partial entries of an e-mail address or addresses saved in block 110 may be checked for any ambiguity or if there is more than one match in an electronic address book. As used herein, an electronic address book may be a contacts list, organization directory, domain or the like. The electronic address book may be stored on the communications device or elsewhere on a system or network, such as on a server or other data source.


In block 120, the partial entries may be checked against the electronic address book for the same or similar identification (ID), user name or the like, but different domains. An algorithm may be used to identify similar addresses, such as an algorithm to identify similar names by evaluating differences or distances between the partial e-mail address and each address in the address book. For example, the partial e-mail address may be checked for possible matches by determining either a Hamming distance or a Levenshtein distance between the partial address and each address in the electronic address book. Determining Hamming distance or Levenshtein distance is used by spell checking algorithms to suggest replacements for mistyped words.


In block 122, a determination may be made if any ambiguities or other possible matches for the partial e-mail address were detected in block 120. If no ambiguities or other possible matches were detected, the e-mail or other communication may be sent in block 124. If other possible matches were detected in block 126, the method 100 may advance to block 128.


In block 128, a determination may be made if the address selected by the user from the list of suggested or predicted addresses is in a predetermined domain. The predetermined domain may be a directory for an organization, such as a corporation, a list of internal addresses, authorized addresses or the like. If a determination is made in block 128 that the address selected from the list of suggested or predicted addresses is in the predetermined domain, the method 100 may return to block 124 and the e-mail or other communication may be sent.


If a determination is made in block 128 that the selected address is not in the predetermined domain, the method 100 may advance to block 130. In block 130, a warning may be presented to the user. The warning may be a visual, audio or combination audio and visual warning that the e-mail may be addressed to a recipient that is not desired or that is not part of the predetermined domain.


In block 132, a user may select to go ahead and send the e-mail or to edit the e-mail address. If the user selects to send the e-mail, the e-mail or other communications is sent in block 134. If the user selects the option to edit the e-mail address, the method 100 may return to block 102 and the method 100 may proceed as previously described.



FIG. 2 is a block schematic diagram of an exemplary system 200 and communications device 202 for e-mail inspection in accordance with an embodiment of the present invention. The communications device 202 may be a computer system, mobile computing system, personal digital assistant, cellular telephone or the like capable of sending e-mails or other electronic communications via a wireless or wire line connection. The method 100 of FIG. 1 may be embodied in the system 200 or communications device 202.


The communications device 202 may include a processor 204. An operating system 206 may run on the processor to control overall operation of the communications device 202. The communications device 202 may also include a browser 208 for accessing web sites or the like on a network, such as the Internet, a private network or other type of network. The communications device 202 may also include an e-mail client 210, application or the like that may be operable on the processor 204. The communications device 202 may also include an e-mail inspection module 212. The e-mail inspection module 212 may be part of the e-mail client 210 or may be features within the e-mail client 210, or may be a separate module that operates in association with the e-mail client 210. The method 100 may be embodied in the e-mail inspection module 212 or e-mail client 210 if combined. Accordingly, the blocks 102-134 or features described with respect to method 100 may correspond to components or elements of the e-mail inspection module 212 or e-mail client 210.


The communications device 202 may also include an input/output (I/O) device or devices and a user interface 214. The user interface 214 may include a display or monitor, keypad, keyboard or the like for a user to enter data and perform the functions described with respect to method 100. The I/O device or devices may include disk drives or the like to download data from a computer useable or readable medium 216 as defined herein.


The communications device 202 may also include a memory system 218. Among other data useable by the communications device 202, the memory system 218 may include an address book 220, contacts list or the like that may be used in conjunction with the e-mail client 210 and e-mail inspection module 212 similar to that described with respect to method 100 of FIG. 1.


The communications device 202 may also include a network interface 222 for accessing a network 224. The network interface 222 may be or may include a wireless transceiver for communicating with the network 224 via radio signals. The network 224 may be a wireless communications network, wire line communications network or a combination wire line and wireless communications network. The network 224 may also be or include the Internet or other network.


The communications device 202 may access a server 226 or other elements or components that may be part of the system 200 via the network 224. The server 226 may include a processor 228. An operating system 230 may be operable on the processor 228 to control operation of the server 226 and to perform various other functions, such as e-mail services and the like.


In some embodiments of the present invention, an e-mail application 232 or similar application may be operable on the processor 230. An e-mail inspection component or element 234 may also be operable on the server processor 228. The e-mail inspection component or element 234 may be part of the e-mail application 232 or may be a separate component operable in conjunction with the e-mail application 232. The e-mail application 232 and e-mail inspection component 234 may function in coordination with the e-mail client 210 and e-mail module 212 in the communications device 202. The e-mail application 232 and e-mail inspection component 234 may perform some or most of the operations associated with a method of e-mail address inspection similar to that described with respect to FIG. 1, particularly in communications devices that may have limited capacity to completely perform such functions.


The server 226 may also include a memory system 236. The memory system 236 may include an address book 238, directory or the like that may define the domain for an organization that can be checked to detect ambiguities in e-mail addresses as previously described. Alternately, the address book 238, directory or the like may be stored in a separate database that is accessible by the server 226.


The server 226 may also include a network interface 240 for accessing the network 224. The network interface 240 may be similar to network interface 222 in the communications device 202. The network interface 240 may also be or may include a transceiver for accessing the network 224 via a wireless, wire line or combination wireless and wire line connection.


The flowcharts and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.


The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.


Although specific embodiments have been illustrated and described herein, those of ordinary skill in the art appreciate that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown and that the invention has other applications in other environments. This application is intended to cover any adaptations or variations of the present invention. The following claims are in no way intended to limit the scope of the invention to the specific embodiments described herein.

Claims
  • 1. A method for e-mail address inspection, comprising: providing a list of suggested or predicted addresses in response to a partial e-mail address being received;checking the partial e-mail address for other possible matches in an electronic address book in response to an address being selected by a user from the list of suggested or predicted addresses; andpresenting a warning in response to other possible matches and the selected address not being in a predetermined domain.
  • 2. The method of claim 1, further comprising setting a flag in response to the user selecting the address from the list of suggested or predicted addresses.
  • 3. The method of claim 2, further comprising saving the partial e-mail address and the address selected by the user from the list of suggested or predicted addresses.
  • 4. The method of claim 2, wherein checking the partial e-mail address for other possible matches is performed in response to the flag being set, and wherein the method further comprises sending the e-mail in response to the flag not being set.
  • 5. The method of claim 1, wherein checking the partial e-mail address for other possible matches comprises using an algorithm to identify similar addresses.
  • 6. The method of claim 1, wherein checking the partial e-mail address for other possible matches comprises evaluating a difference or distance between the partial e-mail address and each address in the electronic address book.
  • 7. The method of claim 1, wherein checking the partial e-mail address for other possible matches comprises determining one of a Hamming distance and a Levenshtein distance between the partial e-mail address and each address in the electronic address book.
  • 8. The method of claim 1, further comprising checking a domain of the address selected by the user from the list of suggested or predicted addresses in response to at least one other match being detected.
  • 9. The method of claim 8, further comprising determining whether the selected address is an address in a predetermined domain in response to at least one other match being detected.
  • 10. The method of claim 9, further comprising sending the e-mail in response to one of no other matches being detected or the selected address being an address in the predetermined domain.
  • 11. The method of claim 1, further comprising: sending the e-mail in response to the user selecting to send the e-mail; andpermitting the address to be edited in response to the user selecting to edit the address.
  • 12. A communications device, comprising: an e-mail module to provide a list of suggested or predicted addresses in response to a partial e-mail address being received and to check the partial e-mail address for other possible matches in an electronic address book in response to an address being selected by a user from the list of suggested or predicted addresses; anda user interface to present a warning in response to other possible matches and the selected address not being in a predetermined domain.
  • 13. The communications device of claim 12, further comprising a component to set a flag in response to the user selecting the address from the list of the suggested or predicted addresses.
  • 14. The communications device of claim 13, further comprising a memory to save the partial e-mail address and the address selected by the user from the list of suggested or predicted addresses.
  • 15. The communications device of claim 12, further comprising an algorithm to identify addresses similar to the partial e-mail address.
  • 16. The communications device of claim 12, wherein the e-mail module further comprises a component to evaluate a difference or distance between the partial e-mail address and each address in the electronic address book.
  • 17. The communications device of claim 12, wherein the e-mail module further comprises a component to determine one of a Hamming distance and a Levenshtein distance between the partial e-mail address and each address in the electronic address book.
  • 18. The communications device of claim 12, wherein the e-mail module further comprises a component to check a domain of the address selected by the user from the list of suggested or predicted addresses in response to at least one other match being detected.
  • 19. The communications device of claim 12, further comprising a network interface to send the e-mail to a network in response to one of no other matches being detected or the selected address being an address in the predetermined domain.
  • 20. A system, comprising: a network for sending and receiving e-mails; andan e-mail module to provide a list of suggested or predicted addresses in response to a partial e-mail address being received and to check the partial e-mail address for other possible matches in an electronic address book in response to an address being selected by a user from the list of suggested or predicted addresses.
  • 21. The system of claim 20, further comprising a component to set a flag in response to the user selecting the address from the list of suggested or predicted addresses.
  • 22. The system of claim 20, further comprising an algorithm to identify similarities between the partial e-mail address and addresses in the electronic address book or other selected domain.
  • 23. The system of claim 20, further comprising a component to evaluate a difference or distance between the partial e-mail address and each address in the electronic address book or other selected domain.
  • 24. A computer program product for e-mail address inspection, the computer program product comprising: a computer useable medium having computer useable program code embodied therein, the computer useable medium comprising: computer useable program code configured to provide a list of suggested or predicted addresses in response to a partial e-mail address being received and to check the partial e-mail address for other possible matches in an electronic address book in response to an address being selected by a user from the list of suggested or predicted addresses; andcomputer useable program code configured to present a warning in response to other possible matches and the selected address not being in a predetermined domain.
  • 25. The computer program product of claim 24, further comprising computer useable program code configured to set a flag in response to the user selecting the address from the list of the suggested or predicted address.
  • 26. The computer program product of claim 24, further comprising computer useable program code configured to identify similarities between the partial e-mail address and addresses in the electronic address book.
  • 27. The computer program product of claim 24, further comprising computer useable program code configured to evaluate a difference or distance between the partial e-mail address and each address in the electronic address book.
  • 28. The computer program product of claim 24, further comprising computer useable program code configured to send the e-mail in response to one of no other matches being detected or the selected address being an address in the predetermined domain.
Provisional Applications (1)
Number Date Country
60804317 Jun 2006 US