The present patent application claims the priority benefit of the filing date of European Application (EPO) No. 042930099.0 filed Dec. 22, 2004, the entire content of which is incorporated herein by reference.
The present application relates to electronic mail systems, and in one example embodiment, the manner in which electronic mail systems process autoreply messages.
Electronic mail (email) systems provide a plethora of features. One feature on many email systems is an out of office autoreply. In general, an autoreply allows a user to set up his email inbox so that when he is out of the office for an extended period of time, the system automatically replies to all email messages sent to his mailbox. Such an autoreply message normally states that the user is out of the office and when he is expected to return. The system can be programmed so that an out of office autoreply is sent for each message received, or it can be programmed so that only one autoreply message is sent for each email address from which it receives an email message. One advantage of sending it only once per email address is that such a setup avoids “auto-bouncing” of replies, in which two email addresses that are registered on the same mailing list are set up for autoreply, thereby causing the two addresses to continually autoreply to each other. To avoid this bouncing problem, most email systems are set up so that only one autoreply is transmitted per email address. However, while setting up the email system on a per email address basis avoids the problem of bouncing, the information in the autoreply message such as the return date is often lost when the person is out of the office for an extended period of time.
In an embodiment of the invention, an electronic mail system identifies autoreply messages that it receives. The email system then extracts the date information from that autoreply message (e.g., the date that the user who generated that autoreply is expected to return to the office), and stores it in a local database. This local database is referred to as a virtual calendar. The email system further has the ability to periodically scan the virtual calendar, and remove any entries that are no longer current (because, for example, the person has returned to the office).
Once the virtual calendar has been created, the exemplary email system uses the virtual calendar to implement several features. In one example embodiment, a user may attempt to access the actual calendar of a second user, and if that second user's calendar is not available, information from the virtual calendar is displayed instead. In another embodiment, the email system checks the virtual calendar before messages are sent out to determine if any of the message recipients are out of the office. If any recipient is out of the office, the sender of the message is given the opportunity to delete that user from the recipient list. In another example embodiment, this ability to delete a person who is out of the office from the recipient list is combined with an email system's address autocompletion feature. In another embodiment, when a user creates a meeting request with the email system, the system checks the virtual calendar to determine if any of the meeting attendees will be out of the office.
An email system, according to an example embodiment of the present invention, is illustrated in
The virtual calendar 175 is created from incoming autoreply messages, and, once created, the virtual calendar 175 may be used by the email system in several ways, according to various example embodiments of the present invention. The virtual calendar 175 can be used in connection with the email system for calendar synchronization, for notifying a sender of an email message that one or more recipients of his message are out of the office, and for identifying an out of office person in connection with the creation of a meeting request. The email system of
More specifically, an example embodiment of the invention creates an entry in the virtual calendar 175 (e.g., as part of the virtual calendar information) in the following manner. Referring to
In an example embodiment of the invention, the virtual calendar 175 in the calendar database 170 is scanned on a periodic basis and entries are deleted at the appropriate time. In one example embodiment, the periodic scanning is performed on a daily basis. There are at least two ways in which this feature of the invention can be implemented. First, referring to
In an example embodiment of the invention illustrated in
In an example embodiment illustrated in
In an embodiment, illustrated in
Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCS, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computer environments where tasks are performed by I/O 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 memory storage devices.
In the embodiment shown in
As shown in
The system bus 23 can be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory can also be referred to as simply the memory, and, in some embodiments, includes read-only memory (ROM) 24 and random-access memory (RAM) 25. A basic input/output system (BIOS) program 26, containing the basic routines that help to transfer information between elements within the computer 20, such as during start-up, may be stored in ROM 24. The computer 20 further includes a hard disk drive 27 for reading from and writing to a hard disk, not shown, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD ROM or other optical media.
The hard disk drive 27, magnetic disk drive 28, and optical disk drive 30 couple with a hard disk drive interface 32, a magnetic disk drive interface 33, and an optical disk drive interface 34, respectively. The drives and their associated computer-readable media provide non volatile storage of computer-readable instructions, data structures, program modules and other data for the computer 20. It should be appreciated by those skilled in the art that any type of computer-readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), read only memories (ROMs), redundant arrays of independent disks (e.g., RAID storage devices) and the like, can be used in the exemplary operating environment.
A plurality of program modules can be stored on the hard disk, magnetic disk 29, optical disk 31, ROM 24, or RAM 25, including an operating system 35, one or more application programs 36, other program modules 37, and program data 38. For instance, in the example embodiment illustrated in
A user may enter commands and information into computer 20 through input devices such as a keyboard 40 and pointing device 42. Other input devices (not shown) can include a microphone, joystick, game pad, satellite dish, scanner, or the like. These other input devices are often connected to the processing unit 21 through a serial port interface 46 that is coupled to the system bus 23, but can be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB). A monitor 47 or other type of display device can also be connected to the system bus 23 via an interface, such as a video adapter 48. The monitor 40 can display a graphical user interface for the user. In addition to the monitor 40, computers typically include other peripheral output devices (not shown), such as speakers and printers.
The computer 20 may operate in a networked environment using logical connections to one or more remote computers or servers, such as remote computer 49. These logical connections are achieved by a communication device coupled to or a part of the computer 20; the invention is not limited to a particular type of communications device. The remote computer 49 can be another computer, a server, a router, a network PC, a client, a peer device or other common network node, and typically includes many or all of the elements described above I/O relative to the computer 20, although only a memory storage device 50 has been illustrated. The logical connections depicted in
When used in a LAN-networking environment, the computer 20 is connected to the LAN 51 through a network interface or adapter 53, which is one type of communications device. In some embodiments, when used in a WAN-networking environment, the computer 20 typically includes a modem 54 (another type of communications device) or any other type of communications device, e.g., a wireless transceiver, for establishing communications over the wide-area network 52, such as the internet. The modem 54, which may be internal or external, is connected to the system bus 23 via the serial port interface 46. In a networked environment, program modules depicted relative to the computer 20 can be stored in the remote memory storage device 50 of remote computer, or server 49. It is appreciated that the network connections shown are exemplary and other means of, and communications devices for, establishing a communications link between the computers may be used including hybrid fiber-coax connections, T1-T3 lines, DSL's, OC-3 and/or OC-12, TCP/IP, microwave, wireless application protocol, and any other electronic media through any suitable switches, routers, outlets and power lines, as the same are known and understood by one of ordinary skill in the art.
Turning specifically to the enterprise application platform 812, web servers 824, and Application Program Interface (API) servers 825 are coupled to, and provide web and programmatic interfaces to, application servers 826. The application servers 826 are, in turn, shown to be coupled to one or more databases servers 828 that facilitate access to one or more databases 830. The web servers 824, Application Program Interface (API) servers 825, application servers 826, and database servers 828 host cross-functional services 832. The application servers 826 further host domain applications 834.
The cross-functional services 832 provide services to users and processes that utilize the information enterprise application platform 812. For instance, the cross-functional services 832 provide portal services (e.g., web services), database services and connectivity to the domain applications 834 for users that operate the client machine 816, the client/server machine 817 and the small device client machine 822. In addition, the cross-functional services 832 provide an environment for delivering enhancements to existing applications and for integrating third party and legacy applications with existing cross-functional services 832 and domain applications 834. Further, while the system 800 shown in
The portal modules 840 enable a single point of access to other cross-functional services 832 and domain applications 834 for the client machine 816, the small device client machine 822 and the client/server machine 817. The portal modules 840 are utilized to process, author and maintain web pages that present content (e.g., user interface elements and navigational controls) to the user. In addition, the portal modules 840 enable user roles, a construct that associates a role with a specialized environment that is utilized by a user to execute tasks, utilize services and exchange information with other users and within a defined scope. For example, the role determines the content that is available to the user and the activities that the user may perform. The portal modules 840 include a generation module, a communication module, a receiving module and a regenerating module. In addition, the portal modules 840 comply with web services standards and/or utilize a variety of Internet technologies including Java, J2EE, SAP's Advanced Business Application Programming Language (ABAP) and Web Dynpro, XML, JCA, JAAS, X.509, LDAP, WSDL, WSRR, SOAP, UDDI and Microsoft.NET.
The relational database modules 842 provide support services for access to the database 830 that includes a user interface library. The relational database modules 842 provide support for object relational mapping, database independence and distributed computing. The relational database modules 842 are utilized to add, delete, update and manage database elements. In addition, the relational database modules 842 comply with database standards and/or utilize a variety of database technologies including SQL, SQLDBC, Oracle, MySQL, Unicode, JDBC.
The connector and messaging modules 844 enable communication across different types of messaging systems that are utilized by the cross-functional services 832 and the domain applications 834 by providing a common messaging application processing interface. The connector and messaging modules 844 enable asynchronous communication on the enterprise application platform 812.
The Application Platform Interface (API) modules 846 enable the development of service-based applications by exposing an interface to existing and new applications as services. Repositories are included in the platform as a central place to find available services when building applications.
The development modules 848 provide a development environment for the addition, integration, updating and extension of software components on the enterprise application platform 812 without impacting existing cross-functional services 832 and domain applications 834.
Turning to the domain applications 834, the customer relationship management applications 850 enable access to and facilitates collecting and storing of relevant personalized information from multiple data sources and business processes. Enterprise personnel that are tasked with developing a buyer into a long-term customer may utilize the customer relationship management applications 850 to provide assistance to the buyer throughout a customer engagement cycle.
Enterprise personnel may utilize the financial applications 852 and business processes to track and control financial transactions within the enterprise application platform 812. The financial applications 852 facilitate the execution of operational, analytical and collaborative tasks that are associated with financial management. Specifically, the financial applications 852 enable the performance of tasks related to financial accountability, planning forecasting, and managing the cost of finance.
The human resource applications 854 may be utilized by enterprise personal and business processes to manage, deploy, and track enterprise personnel. Specifically, the human resource applications 854 enable the analysis of human resource issues and facilitate human resource decisions based on real time information.
The product life cycle management applications 856 enable the management of a product throughout the life cycle of the product. For example, the product life cycle management applications 856 enable collaborative engineering, custom product development, project management, asset management and quality management among business partners.
The supply chain management applications 858 enable monitoring of performances that are observed in supply chains. The supply chain management applications 858 facilitate adherence to production plans and on-time delivery of products and services.
The third party applications 860, as well as legacy applications 862, may be integrated with domain applications 834 and utilize cross-functional services 832 on the enterprise application platform 812.
In the foregoing detailed description of embodiments of the invention, various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments of the invention require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the detailed description of embodiments of the invention, with each claim standing on its own as a separate embodiment. It is understood that the above description is intended to be illustrative, and not restrictive. It is intended to cover all alternatives, modifications and equivalents as may be included within the spirit and scope of the invention as defined in the appended claims. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. In the appended claims, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein,” respectively. Moreover, the terms “first,” “second,” and “third,” etc., are used merely as labels, and are not intended to impose numerical requirements on their objects.
Number | Date | Country | Kind |
---|---|---|---|
04293099.0 | Dec 2004 | EP | regional |