(12) United States Patent Edelen



Similar documents
(12) Ulllted States Patent (10) Patent N0.: US 8,028,070 B2 Boyd et al. (45) Date of Patent: Sep. 27, 2011

US Al (19) United States (12) Patent Application Publication (10) Pub. No.: US 2009/ A1 Sanvido (43) Pub. Date: Jun.

Hay (43) Pub. Date: Oct. 17, 2002

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2014/ A1 FAN et al. (43) Pub. Date: Feb.

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2007/ A1 Ollis et al. HOME PROCESSOR /\ J\ NETWORK

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2012/ A1 Chung (43) Pub. Date: Aug.

60 REDIRECTING THE PRINT PATH MANAGER 1

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2007/ A1. Operating System. 106 q f 108.

(12) United States Patent (16) Patent N6.= US 6,198,814 B1 Gill (45) Date of Patent: Mar. 6, 2001

(12> Ulllted States Patent (10) Patent N0.: US 6,591,288 B1 Edwards et al. (45) Date of Patent: Jul. 8, 2003

US Al (19) United States (12) Patent Application Publication (10) Pub. N0.: US 2012/ A1 Lundstrom (43) Pub. Date: NOV.

Lookup CNAM / other database for calllng

US A1 (19) United States (12) Patent Application Publication (10) Pub. N0.: US 2013/ A1 Pi0t (43) Pub. Date: May 30, 2013

(12) Patent Application Publication (10) Pub. No.: US 2003/ A1 Wu et al. (43) Pub. Date: Feb. 20, 2003

\ \ \ connection connection connection interface interface interface

/ \33 40 \ / \\ \ \ M / f 1. (19) United States (12) Patent Application Publication Lawser et al. NETWORK \ 36. SERVlCE 'NTERNET SERVICE

;111: ~~~~~~~~~~~~~~~~~~~ [73] Assigneez Rockwell Semiconductor Systems 5,754,639 5/1998 Flockhart et al...

US Al (19) United States (12) Patent Application Publication (10) Pub. No.: US 2012/ A1 Kuehl (43) Pub. Date: Aug.

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2013/ A1 Fan et al.

DATA CE NTER. CONFIGURATION DATAEAsE M CONTENT... CONTENT M M SERVICE... SERVICE % % SERVER Q DATA STORAGE MEDIUM 2 APPLICATION...

(12) United States Patent (10) Patent N0.: US 8,282,471 B1 Korner (45) Date of Patent: Oct. 9, 2012

US A1 (19) United States (12) Patent Application Publication (10) Pub. N0.: US 2002/ A1. Mannarsamy (43) Pub. Date: NOV.

(30) Foreign Application Priority Data

(12) United States Patent (16) Patent N6.= US 6,611,861 B1 Schairer et al. (45) Date of Patent: Aug. 26, 2003

software, and perform automatic dialing according to the /*~102

Patent Application Publication Sep. 30, 2004 Sheet 1 0f 2. Hierarchical Query. Contact Ow FIG. 1

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2002/ A1 Fukuzato (43) Pub. Date: Jun.

205 Controller / 205

(12) United States Patent

(43) Pub. Date: Feb. 16, 2012

Back up information data by blocks, and generate backup data of each block

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2002/ A1 Boyer et al. (43) Pub. Date: Aug.

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2005/ A1 Owhadi et al. (43) Pub. Date: Feb.

(12) United States Patent Halonen

US A1 (19) United States (12) Patent Application Publication (10) Pub. N0.: US 2013/ A1 Simburg (43) Pub. Date: Dec.

i Load balancer relays request to selected node

(12) (10) Patent N0.: US 7,069,466 B2 Trimmer et a]. (45) Date of Patent: Jun. 27, 2006

(54) Applicant: (71) (72) Assignee: (73) (21) (22) (60)

Ulllted States Patent [19] [11] Patent Number: 5,943,406

(54) RETARGETING RELATED TECHNIQUES (52) US. Cl /1453 AND OFFERINGS. (75) Inventors: Ayrnan Farahat, San Francisco, (57) ABSTRACT

(71) Applicant: SPEAKWRITE, LLC,Austin, TX (US)

Telephone Dressing Systems - Advantages and Disadvantages

USOOS A Ulllted States Patent [19] [11 Patent Number: Dezonno et al. [45] Date of Patent: *May 25, 1999

l / Normal End, client 1 granted access to " System 1

US Al (19) United States (12) Patent Application Publication (10) Pub. No.: US 2007/ A1 Voight et al. SUBSCRIBER DATABASE.

(Us) (73) Assignee: Avaya Technology Corp. Je?' McElroy, Columbia, SC (US); (21) Appl. No.: 10/413,024. (22) Filed: Apr. 14, 2003 (57) ABSTRACT

(12) United States Patent (10) Patent No.: US 8,832,125 B2 Boctor (45) Date of Patent: Sep. 9, 2014

(54) RAPID NOTIFICATION SYSTEM (52) US. Cl /206. (57) ABSTRACT (75) Inventors: Anand Rajasekar, San Jose, CA

US A1 (19) United States (12) Patent Application Publication (10) Pub. N0.: US 2013/ A1 DANG (43) Pub. Date: Jul.

United States Patent [191

Filetto et al. [45] Date of Patent: Feb. 15, 2000

(12) United States Patent (10) Patent N0.: US 7,068,424 B1 Jennings et al. (45) Date of Patent: Jun. 27, 2006

(12) United States Patent Buchman et a1.

(12) United States Patent (10) Patent No.: US 8,253,226 B2 Oguri (45) Date of Patent: Aug. 28, 2012

(12) Unlted States Patent (10) Patent N0.2 US 7,428,664 B2 Sirbu (45) Date of Patent: Sep. 23, 2008

wanagamem transformation and management

(12) Patent Application Publication (10) Pub. No.: US 2013/ A1 Kim et al. (43) Pub. Date: Dec. 5, 2013

US B1 (12) United States Patent. (10) Patent N0.: US 6,282,278 B1 D0ganata et al. (45) Date 0f Patent: Aug. 28, 2001

(54) METHODS AND SYSTEMS FOR FINDING Publication Classi?cation CONNECTIONS AMONG SUBSCRIBERS TO AN CAMPAIGN (51) Int- Cl

Levy Processing System 1_Q

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2007/ A1 Du et al. (43) Pub. Date: Aug.

llllllllllllllillllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

(43) Pub. Date: Jan. 24, 2008

(12) United States Patent Wen et a].

(IP Connection) Miami (54) (76) (21) (22) (51) (52) Application

(54) LOTTERY METHOD Publication Classi?cation

NJ (US) (51) Int. Cl. H04L 9/00 ( ) Correspondence Address: (52) US. Cl /278; 713/ 150 ALFRED C. ROTH (57) ABSTRACT

United States. (12) Patent Application Publication (10) Pub. No.: US 2013/ A1 Koonce et al. (43) Pub. Date: Oct. 10, 2013 (19) (54) (71) (72)

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2002/ A1 STRANDBERG (43) Pub. Date: Oct.

(75) Inventor: RoelofVIS, Eastern Passage (CA)

(10) Patent N0.: US 6,570,581 B1 Smith (45) Date of Patent: May 27, 2003

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2014/ A1 Kota et al. (43) Pub. Date: Dec.

(12) United States Patent (10) Patent N0.: US 6,192,121 B1 Atkinson et al. (45) Date of Patent: Feb. 20, 2001

(73) Assignee: Realovation Holdings, LLC d/b/a/ systems methods and Software? for improving Communic?

Naylor, Lake OsWego, OR (US) (51) Int_ CL

Ulllted States Patent [19] [11] Patent Number: 6,141,545

(12) United States Patent Armenio et a].

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2005/ A1 Kelly et al. (43) Pub. Date: Feb.

7714 Evaluation 7 logic

(12) Ulllted States Patent (10) Patent N0.: US 8,532,017 B2 Ojala et a]. (45) Date of Patent: Sep. 10, 2013

USOO A United States Patent [191 [11] Patent Number: 5,469,362. Hunt et al. [45] Date of Patent: Nov. 21, 1995

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2013/ A1 Yoder (43) Pub. Date: NOV.

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2007/ A1 Nej ah (43) Pub. Date: Feb.

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2012/ A1 Lee (43) Pub. Date: Mar.

. tlllll,1! 1% 11:11 I.,W/ "-111 // out AIHI/ ) I \\ M10. 1 I! (1' 1L- 1!!! I VEHICLE} I] r20 (TRAFFIC COMPUTER 10 RECEIVING UNIT 41 I \ ")SENSOR

CSCA0201 FUNDAMENTALS OF COMPUTING. Chapter 5 Storage Devices

US Al (19) United States (12) Patent Application Publication (10) Pub. No.: US 2007/ A1 Zhou et al. (43) Pub. Date: Jul.

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2008/ A1 Long et al. (43) Pub. Date: Jul.

GATEWAY ' o o o

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2013/ A1 Chen (57)

4,670,900 Jun. 2, 1987

subscription event billing event Dispatch selection to user

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2013/ A1 Forrester (43) Pub. Date: Oct.

(12) United States Patent (10) Patent N0.: US 8,695,377 B2 Bachelier et a]. (45) Date of Patent: Apr. 15, 2014

Access List: my-fw-rule

i X USE HOST USB B R CONTROLLER 111a 40 11a 1 21

US Al (19) United States (12) Patent Application Publication (10) Pub. No.: US 2013/ A1 Weng et al. (43) Pub. Date: Sep.

Ml CRO- MICRO PLEASE

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2006/ A1 Clegg (43) Pub. Date: Sep.

etc.) (ERP) Computer System (e.g., columns, rows,?elds, r16 (e.g., Database) 24 Enterprise Resource Planning Table Objects Module 0 r26

Transcription:

US008285799B2 (12) United States Patent Edelen (10) Patent N0.: (45) Date of Patent: Oct. 9, 2012 (54) QUOTA-BASED ARCHIVING (75) Inventor: James Edelen, Renton, WA (U S) (73) Assignee: Microsoft Corporation, Redmond, WA (Us) * Notice: Sub'ect J to an y disclaimer, the term of this (21) Appl. No.: 12/766,026 (22) Filed: Apr. 23, 2010 patent is extended or adjusted under 35 U.S.C. 154(b) by 341 days. (65) Prior Publication Data (51) (52) (58) US 2011/0264630 A1 Oct. 27, 2011 Int. Cl. G06F 15/16 (2006.01) G06F 17/00 (2006.01) G06F 9/44 (2006.01) US. Cl...... 709/206; 709/202; 707/661; 707/665; 719/313 Field of Classi?cation Search..... 709/202, 709/206 See application?le for complete search history. (56) References Cited U.S. PATENT DOCUMENTS 7,624,151 B2 11/2009 Heidloff 2002/0147733 A1 10/2002 Gold 2003/0065724 A1 4/2003 Clark 2008/0109820 A1 5/2008 Raghunandan 2009/0304362 A1 12/2009 Neufeld OTHER PUBLICATIONS Archive Attender for Microsoft Exchange Server by Sherpa Soft ware; accessed at: http://www.itfts.com/vendor/sherpa/ 100\ sherpa%20archive%20attender%20microsoft%20exhange.html; accessed on Feb. 24, 2010, 4 pages. Email Archiving Software FeaturesiThe Archiving Process; pub lished Sep. 23, 2008, 12 pages. HP Email Archiving Software for Lotus Domino 2.0; published Jan. 23, 2009, 7 pages. Quota Based ArchivingiHoW It Works and WhyYou May Wrongly Believe It Does Not! ll Dec. 21, 2009, 3 pages. Shortcut Estimates for Quota-based Archiving; accessed at: http:// 66.102.9.132/search?q:cache:tlBnO88iPxIJ:ftp://exftpp. symantec.com/ pub/ support/ pro ducts/ ExhangeiMailboxi ArchivingiUnit/ 3 13276.pdf+quota-based+archiving&cd:7&hl:en &ct:clnk; accessed on Feb. 24, 2010, 6 pages. Symantec Enterprise Vault: Administrator s Guide, updated Jun. 7, 2009, 370 pages. Symantec Enterprise Vault: Setting up Exchange Server Archiving; Copyright 2008, 228 pages. Symantec Enterprise VaultTM, Store, Manage, and Discover Critical Business Information; Copyright 2008, 6 pages. Primary Examiner * Wing Chan Assistant Examiner * David X Yi (74) Attorney, Agent, or Firm * Merchant & Gould (57) ABSTRACT A determination of Whether to archive email messages in a user mailbox is made each time an email message is received at a server computer. A storage quota, a?rst threshold and a second threshold are obtained for the user mailbox. The?rst threshold is a?rst percentage of the storage quota. The second threshold is a second percentage of the storage quota. When it is determined that the size of the received email message plus the current size of the user mailbox exceeds the?rst threshold for the user mailbox, one or more email messages in the user mailbox are archived. The archiving of the one or more email messages reduces the current size of the user mailbox such that the current size of the user mailbox becomes less than the number of bytes corresponding to the second threshold for the user mailbox. 17 Claims, 7 Drawing Sheets Directory Service 108 Client 102 Client 104 i Mailbox Server 110 Mailbox Archive Storage 112

US. Patent 0a. 9, 2012 Sheet 1 of7 33.6w E9025 mo? 0:. N: x3502 00 _. E26 Now E26 wow

US. Patent Oct. 9, 2012 Sheet 2 0f 7 200 \ 110\ Front-End Module 202 Transport Module 204 Mailbox Database Module 206 FIG. 2

US. Patent Oct. 9, 2012 Sheet 3 0f 7 300 \ Receive email message at mailbox server Determine user mailbox for email message 306\ Obtain storage quota for user mailbox 30a \ Obtain?rst threshold for user mailbox 310\ Obtain second threshold for user maibox FIG. 3

US. Patent 0a. 9, 2012 Sheet 4 of7 300 \ A. 312\ Obtain current size of user mailbox 314\ l Determine size of email message plus attachments?us currekm 315 -- mail I size>first " threshold / NO YES a1a\ Archive one OF more email messages currently in user mailbox Store received email message in user mailbox FIG. 4

US. Patent Oct. 9, 2012 Sheet 5 0f 7 500 \ 502 \ Receive email message at transport server Determine user mailbox for email message 506\ Obtain storage quota for user mailbox 508 \ Obtain?rst threshold for user mailbox Obtain current size of user mailbox FIG. 5

US. Patent 0a. 9, 2012 Sheet 6 of7 500 \ 512\ Determine size of email message plus attachments plus curren size >?rst threshold? 516 \ Send message to mailbox server to initiate archive Drocess 51 8 \ ' Receive noti?cation from mailbox server that archive process is completed 520\ Send received email message to mailbox server FIG. 6

1 QUOTA-BASED ARCHIVING BACKGROUND Email systems are commonly comprised of a large number of mailbox servers, each containing a large number of user mailboxes. Each user mailbox typically has a size quota lim iting the number and/or size of the emails that can be stored in the user mailbox. Archiving systems are commonly used to periodically transfer email messages from user mailboxes to archived storage in order to keep the size of the user mail boxes below the size quota. Archiving of emails is commonly initiated at set intervals, such as daily, Weekly, or monthly. Older messages are typi cally archived before newer messages. Email users often need to spend time managing their user mailboxes in order to prevent email messages they need from being archived. SUMMARY Embodiments of the disclosure are directed to a method for archiving email messages on a server computer. An email message is received at the server computer. A user mailbox to Which the email message is to be directed is determined. A storage quota is obtained for the user mailbox. A?rst thresh old is obtained for the user mailbox. The?rst threshold is a?rst percentage of the storage quota. A second threshold is obtained for the user mailbox. The second threshold is a second percentage of the storage quota. The second threshold is lower than the?rst threshold. A current size of the user mailbox is obtained. The current size comprises the size in bytes of all email messages and attachments to email mes sages currently in the user mailbox. A size of the received email message is determined. A determination is made as to Whether the size of the received email message plus the cur rent size of the user mailbox exceeds the?rst threshold for the user mailbox. When it is determined that the size of the received email message plus the current size of the user mail box exceeds the?rst threshold for the user mailbox, one or more email messages in the user mailbox are archived. The archiving of the one or more email messages reduces the current size of the user mailbox such that the current size of the user mailbox becomes less than the number of bytes corresponding to the second threshold for the user mailbox. A determination of Whether to archive one or more email mes sages in the user mailbox is made each time an email message is received at the server computer. The details of one or more techniques are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of these techniques Will be apparent from the description, drawings, and claims. DESCRIPTION OF THE DRAWINGS FIG. 1 shows an example system that supports quota-based archiving. FIG. 2 shows example modules of the mailbox server of FIG. 1. FIGS. 3 and 4 show a?owchart of a method for implement ing quota-based archiving. FIGS. 5 and 6 show a?owchart of another method for implementing quota-based archiving. FIG. 7 shows example components of the mailbox server of FIG. 1. DETAILED DESCRIPTION The present application is directed to systems and methods for archiving email messages on a server computer. A deter 20 25 30 35 40 45 50 55 60 65 2 mination of Whether to archive is based on storage quotas for user mailboxes on the server computer. The server computer is a mailbox server that includes many user mailboxes. Each user mailbox is assigned a storage quota, specifying a limit in bytes for email messages and attachments stored in each user mailbox. In some examples described herein, each user mailbox is also assigned a?rst threshold value and a second threshold value. The?rst threshold value is a percentage of the storage quota that constitutes a high Watermark for mailbox storage. The second threshold is a percentage of the storage quota that constitutes a low Watermark for mailbox storage. In this example, When an email message is received at the mailbox server for a particular user, a determination is made as to Whether the size of the email message plus any attach ments to the email message When added to the current size of the user s mailbox is greater than the high Watermark. When it is determined that the size of the email message plus any attachments to the email message plus the current size of the user mailbox is equal to or lower than the high Watermark, the received email message is sent to the user mailbox. HoWever, When it is determined that the size of the received email message plus any attachments plus the current size of the email message is greater than the high Watermark, one or more email messages stored in the user mailbox are archived until the current size of the user mailbox becomes less than the low Watermark. The term archiving as used in this disclosure refers to transferring one or more items stored in a user s mailbox on mailbox server to one or more storage devices external to the user s mailbox, such as storage on a separate server. Items stored in a user s mailbox include one or more email mes sages, calendar items, voice mails, SMS (short message ser vice) messages or similar mailbox items. Archiving email messages, using the systems and methods in the present dis closure, allows email messages sent to a user mailbox to automatically be received, rather than being rejected due to storage limitations. FIG. 1 shows an example system 100 that can be used to archive email messages on a server computer. The example system 100 includes client computers 102, 104, network 106, directory service 108, mailbox server 110 and mailbox archive storage 112. Client computers 102, 104 include software, such as Microsoft OUTLOOK 2007 messaging and collaboration software from Microsoft Corporation of Redmond, Wash., that includes functionality for sending and receiving email messages at client computers 102, 104. Directory service 108 is a directory of user objects, includ ing user mailboxes. The directory service 108 associates a user name and email address With a user mailbox. An example of a directory service 108 is the ACTIVE DIRECTORY directory service from Microsoft Corporation of Redmond, Wash. Mailbox server 110 is part of a server-based email system such as Microsoft Exchange from Microsoft Corporation of Redmond, Wash. Mailbox server 110 hosts one or more data bases that include one or more user mailboxes. Depending on the size of the server-based email system in Which mailbox server 110 is used, the number of user mailboxes included on mailbox server 110 may range from the hundreds, to the thousands and more. Large email systems may include hun dreds or thousands of mailbox servers. An example mailbox server 110 is Microsoft Exchange Server 2007. Mailbox archive storage 112 includes one or more storage devices that receive and store messages transferred from mailbox server 110 during an archiving operation. In one

3 example, the mailbox archive storage 112 provides an archive mailbox for each user. Mailbox archive storage 112 can include server computers, disk storage systems, tape libraries, etc. The mailbox archive storage 112 is typically tightly packed and provides more archive mailboxes than mailbox server 110. Mailbox archive storage is also typically slower and more cost-effective than the cost of mailbox server 110. For example, hard disk drives for server computers used in mailbox storage 112 may be slower and less expensive than hard disk drives used for mailbox server 110 due to the expec tation that users Will access mailbox archive storage 112 less frequently than mailbox server 110. The mailbox archive storage 112 provides a cost ef?cient solution for archiving email messages from mailbox server 110. NetWork 106 provides connectivity between client com puters 102, 104, directory service 108, mailbox server 110 and mailbox archive storage 112. NetWork 106 is typically a corporate Intranet, the Internet or a combination of the two. FIG. 2 shows example modules 200 of mailbox server 110. The example modules 200 of mailbox server 110 include a front-end module 202, a transport module 204 and a mailbox database module 206. The example front-end module 202 provides a connection interface for client computers 102, 104. Client computers 102, 104 typically connect to front-end module 202 using client side applications such as Microsoft Outlook or Microsoft Outlook Web App. The example transport module 204 processes email mes sages in transit. As used in this disclosure, email messages in transit are email messages that have been received at mailbox server 110 via the front-end module 202 but have not yet been copied to a user mailbox. The example transport module 204 uses the directory service 108 to determine the speci?c user mailbox to Which a received email message is to be directed. The example transport module 204 holds the received email message until the example transport module 204 determines that the received email message can be delivered to a user mailbox. The example mailbox database module 206 comprises one or more databases that each includes one or more user mail boxes. Each user mailbox includes a mailbox table that con tains a set of properties for the user mailbox. The properties represent metadata for the user mailbox. One example prop erty indicates the current size of the user mailbox. Another example property indicates a storage quota for the user mail box. The storage quota speci?es the maximum allowable size for the user mailbox. Additional properties include a?rst threshold value and a second threshold value. The?rst thresh old value speci?es a percent of the storage quota Which Will trigger an archiving of emails in the user mailbox. For example, if the?rst threshold is set to 90%, archiving is triggered When the current size of the user mailbox is 90% of the storage quota. The second threshold value speci?es a percent of the storage quota that represents the extent to Which the user mailbox is archived. For example, if the sec ond threshold is 80%, When archiving occurs the email mes sages in the user mailbox are archived until the current size of the user mailbox is reduced to 80% of the storage quota. In examples, especially for large email systems, the front end module 202, the transport module 204 and the mailbox database module 206 may each reside on one or more separate server computers. For example, an email system may include one or more front-end server computers, one or more trans port server computers and one or more mailbox database server computers. Additionally, When the front-end module 202, transport module 204 and mailbox database module 206 all reside on one mailbox server, for example on mailbox server 110, some 20 25 30 35 40 45 50 55 60 65 4 of the functionality discussed for these modules may be per formed on other modules. For example, some of the function ality provided by the transport module 204, for example mail box table property lookups, may be provided by mailbox database module 206. The parameters associated With the archiving of email messages on the example mailbox server 110 can be con trolled by a system administrator for the mailbox server 110. For example, the system administrator controls the property settings for storage quota and?rst and second threshold for each user mailbox. The system administrator also sets policy rules that determine Which email messages are to be archived. The policy rules make use of metadata for each user mailbox. The metadata may include a time and date stamp for each email message, a priority property for each email message, the date and time that each email message Was last accessed and a mailbox folder in Which each email message is stored. Other examples of metadata for each user mailbox are pos sible. For example, the system administrator may con?gure mail box server 110 such that the oldest email messages are archived?rst. Alternatively, the system administrator may con?gure mailbox server 110 such that messages designated as low priority are archived?rst or that messages stored in certain mailbox folders (e.g., Deleted Items ) are archived?rst. Other examples for determining Which emails are archived?rst are possible. When a system administrator con?gures mailbox server 110 for a certain policy for archiving email messages, the policy applies to all user mailboxes associated With that mail box server 110. The system administrator may also con?gure individual user mailboxes. HoWever, in examples a user on a client computer, for example on client computer 1 02, 1 04, can override the con?gured policy. For example, a user on client computer 102 can con?gure an email client, for example Microsoft Outlook on client computer 102, to archive email messages based on a priority of an email message. When a user on client computer 102 con?gures the email client on client computer 102 to archive email messages for the user based on the an email message priority, the con?guration for the user mailbox is sent to mailbox server 110 and overrides the email archiving policy on mailbox server 110 for the user mailbox. HoWever, a client computer cannot override the storage quota,?rst threshold and second threshold for a user mailbox set by the system administrator. The email archiving mechanism in the present disclosure is a push-based policy. A push-based policy as used in the present disclosure is one in Which a decision on Whether to archive is made in real time When each email message is received at the mailbox server 110. The decision involves making a determination as to Whether the size of the received email message plus the size of all attachments to the received email message plus the current size of a user mailbox to Which the received email is directed is less than the?rst threshold value. With a push-based policy, the received email message is not sent to a user mailbox until this decision is made. With a push-based policy, When it is determined that the size of a received email message plus all attachments to the email message plus the current size of a user mailbox are greater than a size equal to the?rst threshold multiplied by the storage quota for the user mailbox, an archiving operation is initiated. As a result of the archiving operation, enough email messages are archived from the user mailbox so that the received email message plus all attachments can be stored in the user mailbox. The implementation of a push-based policy ensures that all received email messages Will be stored in the

5 user mailbox and that received email messages are not rejected because of space limitations for the user mailbox. FIGS. 3 and 4 show an example?owchart of a method 300 for implementing quota-based archiving. At operation 302, an email message is received at mailbox server 110. At opera tion 304, a user mailbox is determined to receive the email message. The determination of the user mailbox is typically made by directory service 108, for example Active Directory. The directory service 108 determines the user mailbox based on an SMTP address in the email message. The directory service 108 maps the SMTP address to a user and determines the user mailbox associated with the user. At operation 306, a storage quota is obtained for the user mailbox. The storage quota is typically obtained from a mail box table associated with the user mailbox. The mailbox table is included in a database for the user mailbox on mailbox server 110. At operation 308, a?rst threshold is obtained for the user mailbox and at operation 310, a second threshold is obtained for the user mailbox. The?rst threshold and the second threshold are also obtained from the mailbox table associated with the user mailbox. The?rst threshold represents a size threshold in bytes, for example a?rst percentage of the stor age quota, which triggers archiving of the user mailbox. The second threshold represents another size threshold in bytes, for example a second percentage of the storage quota, to which the current size of the user mailbox is lowered as a result of archiving. At operation 312, the current size of the user mailbox is obtained. The current size of the user mailbox is typically obtained from the mailbox table associated with the user mailbox. At operation 314, a determination is made as to the size of the received email message plus the size of all attach ments to the email message. At operation 316, a determina tion is made as to whether the size of the received email message plus the size of all attachments to the email message, plus the current size of the user mailbox is greater than the?rst threshold. When it is determined at operation 316 that the size of the received email message plus the size of all attachments to the email message, plus the current size of the user mailbox is greater than the?rst threshold, at operation 318 an archiving operation is started and one or more email messages are archived at mailbox server 110. The archiving operation removes the one or more email messages, plus all attachments to the email message, from mailbox server 110 and copies the one or more email messages plus attachments to mailbox archive storage 112. A determination of which email mes sages are archived is made based on an archiving policy set by a system administrator. As a default, older email messages are archived?rst. As discussed, the speci?c archive policy can be overwritten by a user at client computers 102, 104. Archiving continues until the current size of the user mailbox is less than the second threshold. At operation 320, when the current size of the user mailbox becomes less than the second threshold, the received email message is copied to the user mailbox. When it is determined at operation 316 that the size of the received email message plus the size of all attachments to the received email message plus the current size of the user mail box is less than or equal to the?rst threshold, archiving is not initiated. Instead, control passes directly to operation 320 and the received email message is copied to the user mailbox. FIGS. 5 and 6 show an example?owchart of another method 500 for implementing quota-based archiving. The example method 500 is used in an email system that com prises at least one front-end server computer, at least one 20 25 30 35 40 45 50 55 60 65 6 transport server computer and at least one mailbox database server computer. The front-end server computer generally incorporates the functionality of the example front-end mod ule 204. The transport server computer generally incorporates the functionality of the example transport module 204. The mailbox database server computer generally incorporates the functionality of the example mailbox database module 206. When separate servers are used, the functionality for obtaining the mailbox quota size, the current mailbox size and the?rst and second thresholds is on the transport server. In examples, the transport server obtains the mailbox quota size, the current mailbox size and the?rst and second thresholds via HTTP messaging via RPC calls to an application program interface on a mailbox database server. The?rst and second thresholds may also be obtained from directory service 108. In addition, when separate servers are used, the functionality for determining whether the size of the received mail mes sage plus attachments plus the current size of the user mailbox is less than the?rst threshold is also on the transport server. At operation 502, an email message is received at a trans port server computer. The email message is sent to the trans port server computer from a front-end server computer. At operation 504, a user mailbox is determined to receive the email message. The determination of the user mailbox is typically made by directory service 108, for example Active Directory. The directory service 108 determines the user address based on an SMTP address in the email message. The directory service 108 maps the SMTP address to a user and determines the user mailbox associated with the user. At operation 506, a storage quota is obtained for the user mailbox. The storage quota is typically obtained from a mail box table associated with the user mailbox. The mailbox table located in a mailbox server computer that includes the user mailbox. At operation 508, a?rst threshold is obtained for the user mailbox. The?rst threshold is also obtained from the mailbox table associated with the user mailbox. The?rst threshold represents a size threshold in bytes, for example a?rst per centage of the storage quota, which triggers archiving of the user mailbox. At operation 510, the current size of the user mailbox is obtained. The current size of the user mailbox is typically obtained from the mailbox table associated with the user mailbox. At operation 512, a determination is made as to the size of the received email message plus the size of all attach ments to the email message. At operation 514, a determina tion is made as to whether the size of the received email message plus the size of all attachments to the email message, plus the current size of the user mailbox is less than the number of bytes corresponding to the?rst threshold. When it is determined at operation 514 that the size of the received email message plus the size of all attachments to the email message, plus the current size of the user mailbox is greater than the?rst threshold, at operation 516 a message is sent to a mailbox database server to initiate an archiving process for the user mailbox on the mailbox database server. The mailbox database server includes functionality similar to that disclosed for mailbox database module 206. At operation 518, noti?cation is received the mailbox data base server that the archive process is completed for the user mailbox. The noti?cation informs the transport server that there is storage space in the user mailbox on the mailbox server for the received email message and all attachments to the received email message. At operation 520, the received email message is sent to the mailbox database server. When it is determined at operation 514 that the size of the received email message plus the size of all attachments to the

7 received email message plus the current size of the user mail box is less than the?rst threshold, archiving is not initiated. Instead, control passes directly to operation 520 and the received email message is sent to the mailbox database server. In other examples, not shown in FIG. 3, 4, 5 or 6, quota based archiving may be turned off as a default. Turning quota based archiving off may improve system e?iciency, eliminat ing the need to check the size of each received email plus attachments. In examples, When quota-based archiving is turned off and a certain mailbox threshold is reached, for example a third threshold, a dialog box is displayed to inform a system administrator to turn quota-based archiving on. When quota-based archiving is turned on the size of each received email message is checked, as discussed, to deter mine Whether an archiving operation is to be initiated. With reference to FIG. 7, example components of mailbox server 110 are shown. In example embodiments, the mailbox server 110 is a computing device. The mailbox server 110 can include input/output devices, a central processing unit ( CPU ), a data storage device, and a network device. Client computers 102, 104 can be con?gured in a similar manner. In a basic con?guration, the mailbox server 110 typically includes at least one processing unit 702 and system memory 704. Depending on the exact con?guration and type of com puting device, the system memory 704 may be volatile (such as RAM), non-volatile (such as ROM,?ash memory, etc.) or some combination of the two. System memory 704 typically includes an operating system 706 suitable for controlling the operation of a networked personal computer, such as the Windows@ operating systems from Microsoft Corporation of Redmond, Wash. or a server, such as Microsoft Exchange Server 2007, also from Microsoft Corporation of Redmond, Wash. The system memory 704 may also include one or more software applications 708 and may include program data. The mailbox server 110 may have additional features or functionality. For example, the mailbox server 110 may also include computer readable media. Computer readable media can include both computer readable storage media and com munication media. Computer readable storage media is physical media, such as data storage devices (removable and/or non-removable) including magnetic disks, optical disks, or tape. Such addi tional storage is illustrated in FIG. 7 by removable storage 710 and non-removable storage 712. Computer readable stor age media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer read able instructions, data structures, program modules, or other data. Computer readable storage media can include, but is not limited to, RAM, ROM, EEPROM,?ash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical 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 be accessed by mailbox server 110. Any such computer readable storage media may be part of device 110. Mailbox server 110 may also have input device (s) 714 such as keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 716 such as a dis play, speakers, printer, etc. may also be included. The mailbox server 110 may also contain communication connections 718 that allow the device to communicate With other computing devices 720, such as over a network in a distributed computing environment, for example, an intranet or the Internet. Communication connection 718 is one example of communication media. Communication media may typically be embodied by computer readable instruc 20 25 30 35 40 45 50 55 60 65 8 tions, data structures, program modules, or other data in a modulated data signal, such as a carrier Wave or other trans port 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 connec tion, and Wireless media such as acoustic, RF, infrared and other Wireless media. The various embodiments described above are provided by Way of illustration only and should not be construed to lim iting. Various modi?cations and changes that may be made to the embodiments described above Without departing from the true spirit and scope of the disclosure. What is claimed is: 1. A method for archiving email messages on a server computer, the method comprising: receiving an email message at the server computer; determining a user mailbox to Which the email message is to be directed; obtaining a storage quota for the user mailbox; obtaining a?rst threshold for the user mailbox, the?rst threshold being a?rst percentage of the storage quota; obtaining a second threshold for the user mailbox, the second threshold being a second percentage of the stor age quota, the second threshold being lower than the?rst threshold; obtaining a current size of the user mailbox, the current size comprising the size in bytes of all email messages and attachments to email messages currently in the user mailbox; determining a size of the received email message; determining Whether the size of the received email mes sage plus the current size of the user mailbox exceeds the?rst threshold for the user mailbox; When it is determined that the size of the received email message plus the current size of the user mailbox exceeds the?rst threshold for the user mailbox, archiving one or more email messages in the user mail box, the archiving of the one or more email messages reducing the current size of the user mailbox such that the current size of the user mailbox becomes less than the number of bytes corresponding to the second thresh old for the user mailbox; and When it is determined that the size of the received email message plus the size of all attachments to the received email message plus the current size of the user mailbox exceeds the?rst threshold for the user mailbox, copying the received email mes sage to the user mailbox When the current size of the user mailbox becomes less than the number of bytes corresponding to the second threshold for the user mailbox, Wherein a determination of Whether to archive one or more email messages in the user mailbox is made each time an email message is received at the server computer. 2. The method of claim 1, Wherein the received email message is not delivered to the user mailbox until the deter mination is made as to Whether the size of the received email message plus the current size of the user mailbox exceeds the?rst threshold for the user mailbox. 3. The method of claim 1, Wherein the storage quota, the current size of the user mailbox, the?rst threshold and the second threshold comprise metadata associated With the user mailbox.

9 4. The method of claim 3, wherein the storage quota, the current size of the user mailbox, the?rst threshold and the second threshold are obtained from a mailbox table on the server computer. 5. The method of claim 1, Wherein archiving the one or more email messages comprises storing the one or more email messages on one or more storage devices external to the server computer. 6. The method of claim 5, further comprising deleting the one or more email messages from the server computer after the one or more email messages are stored on the one or more storage devices. 7. The method of claim 1, Wherein the one or more email messages to be archived are selected based on rules set by an administrator of the server computer. 8. The method of claim 7, Wherein the rules set by the administrator are modi?ed by instructions received from a client computer. 9. The method of claim 1, Wherein the one or more email messages to be archived are selected based on metadata asso ciated With the user mailbox. 10. The method of claim 1, Wherein the one or more email messages to be archived are determined by a date and time that the one or more email messages Were received in the user mailbox, the oldest email messages being archived?rst. 11. The method of claim 1, Wherein the one or more email messages are archived based on a priority of email messages in the user mailbox, email messages having the lowest prior ity being archived?rst. 12. The method of claim 1, Wherein the one or more email messages are archived based on a date and time that the one or more email messages Were last accessed, the least recently accessed mail messages being archived?rst. 13. The method of claim 1, Wherein the one or more email messages are archived based on one or more folders that store the one or more email messages, the user mailbox including rules specifying a priority of folders from Which stored email messages are to be archived. 14. A method for archiving email messages on a?rst server computer, the method comprising: receiving an email message at the?rst server computer; determining a user mailbox to Which the email message is to be directed; obtaining a storage quota for the user mailbox; obtaining a?rst threshold for the user mailbox, the?rst threshold being a?rst percentage of the storage quota; obtaining a second threshold for the user mailbox, the second threshold being a second percentage of the stor age quota, the second thresholdbeing lower than the?rst threshold; obtaining a current size of the user mailbox, the current size being the size in bytes of all email messages and attach ments to email messages currently in the user mailbox; determining the size of the email message plus the size of all attachments to the email message; determining Whether the size of the email message plus the size of all attachments to the email message plus the current size exceeds the?rst threshold for the user mail box; When it is determined that the size of the email message plus the size of all attachments to the email message plus the current size exceeds the?rst threshold for the user mailbox, archive one or more email messages in the user mailbox, the archiving of the one or more email mes sages reducing the current size of the user mailbox such 10 20 25 30 35 40 45 50 55 60 10 that the current size becomes less than the second thresh old for the user mailbox, Wherein the one or more email messages to be archived are selected based on rules set by an administrator of the server computer or a priority of the one or more email messages; When it is determined that the size of the email message plus the size of all attachments to the email message plus the current size exceeds the?rst threshold for the user mailbox, sending a message to a second server computer to initiate an archive process for the user mailbox; receiving a noti?cation from the second server computer that the archive process is completed; and after receiving a noti?cation from the second server computer that the archive process is completed, sending the received email message to the second server computer. 15. The method of claim 14, Wherein the storage quota, the?rst threshold and the current size are obtained from the second server computer. 16. The method of claim 14, Wherein determining a user mailbox to Which the email message is to be directed further comprises using a directory service to obtain the user mail box. 17. A computer-readable data storage device comprising instructions that, When executed by a processing unit of a server computer, cause the processing unit to: receive an email message at the server computer; determine the size of the email message plus the size of all attachments to the email message; determine a user mailbox to Which the email message is to be directed; obtain a storage quota for the user mailbox; obtain a?rst threshold for the user mailbox, the?rst thresh old being a?rst percentage of the storage quota; obtain a second threshold for the user mailbox, the second threshold being a second percentage of the storage quota, the second threshold being lower than the?rst threshold; obtain a current size of the user mailbox, the current size being the size in bytes of all email messages and attach ments to email messages currently in the user mailbox; determine Whether the size of the email message plus the size of all attachments to the email message plus the current size exceeds the?rst threshold for the user mail box; When it is determined that the size of the email message plus the size of all attachments to the email message plus the current size exceeds the?rst threshold for the user mailbox, archive one or more email messages in the user mailbox, the archiving of the one or more email mes sages reducing the current size of the user mailbox such that the current size becomes less than the second thresh old for the user mailbox, Wherein the one or more email messages to be archived are selected based on rules set by an administrator of the server computer or a priority of the one or more email messages; and When it is determined that the size of the email message plus the size of all attachments to the email message plus the current size exceeds the?rst threshold for the user mailbox, deliver the email message to the user mailbox When the current size of the user mailbox becomes less than the second threshold for the user mailbox, Wherein the storage quota, the?rst threshold and the sec ond threshold are obtained from metadata for the user mailbox.