
Chapter 7 Working With Company E-mail and Meeting Appointments 7.1 Synchronizing with the Exchange Server To keep up-to-date with your company e-mail messages and meeting schedules while you’re out of the office , you can connect your device to the Internet through Wi-Fi or a data connection and synchronize with your company’s Exchange Server . Setting up an Exchange Server connection Before you can synchronize or access information on the Exchange Server , you need to set up an Exchange Server connection on your device . You need to get the Exchange Server name ( must be Outlook Web Access server name ) , domain name , user name , and the password that you use at work from your network administrator and enter them on your device . Note You can set up an Outlook e-mail account that synchronizes with the Exchange Server from the TouchFLO 3D Mail tab using Mail Setup . See “ Mail ” in Chapter 3 for details . If you have not synchronized your device with your computer , follow these steps to set up an Exchange Server connection . 1. Tap Start > All Programs > Messaging > Setup E-mail . 2. Enter the E-mail address and Password for the e-mail account and select the Save password option . Tap Next . 144 Working With Company E-mail and Meeting Appointments 3. Clear the Try to get e-mail settings automatically from the Internet option and tap Next . 4. In Your e-mail provider , select Exchange server and tap Next . 5. Tap Next again . 6. Select the Attempt to detect Exchange Server Settings automatically option and tap Next . 7. Enter the Domain name and tap Next . 8. In Server address , enter the Exchange Server address and tap Next . 9. Select the items that you want to sync with the Exchange Server . Tips • To change synchronization settings of an information item , for example , E-mail , select the item , then tap Settings . • To change the rules for resolving synchronization conflicts , tap Menu > Advanced . • If you synchronized e-mail messages with your computer before , open ActiveSync on your device , then tap Menu > Add Server Source to set up an Exchange Server connection . When prompted to select information types for synchronization , you must first clear the E-mail check box under the Windows PC item before you can select E-mail under Exchange Server . • To change Exchange Server settings , open ActiveSync on your device , and then tap Menu > Configure Server . 10. Tap Finish . Notes Starting synchronization Before you start synchronizing with the Exchange Server , make sure your device has been set up with a Wi-Fi or data connection to the Internet so that you can synchronize over the air . For more information about connections , see Chapter 8. After you finish setting up an Exchange Server connection , your device automatically starts synchronization . Working With Company E-mail and Meeting Appointments 145 To manually start synchronization , tap Start > Settings , and then touch Sync Data . Note If you connect your device to your office computer via a USB or Bluetooth connection , you can use this connection to the computer to “ pass through ” to the network and download Outlook e-mail messages and other information to your device . 7.2 Working With Company E-mail Messages Your device gives you instant access to your company e-mail messages and lets you manage your messages easier . Direct Push , Fetch Mail , Remote e-mail search , and e-mail flags are just some of the tools you can use to manage your e-mail messages . Note Some messaging features depend on the Microsoft Exchange Server version used in your company . Check with your network administrator for the availability of these features . Automatic synchronization through Direct Push Direct Push technology ( push e-mail feature ) enables you to receive new e-mail messages on your device as soon as they arrive in your Inbox on the Exchange Server . Items such as contacts , calendar and tasks are also immediately updated onto your device when these items have been changed or new entries have been added on the Exchange Server . To make Direct Push work , you need to have a Wi-Fi or data connection on your device . You need to perform a full synchronization between your device and the Exchange Server before Direct Push can be enabled . Requirement The Direct Push feature works for your device only if your company is using Microsoft Exchange Server 2003 Service Pack 2 ( SP2 ) with Exchange ActiveSync or later . 146 Working With Company E-mail and Meeting Appointments To turn on Direct Push in Comm Manager 1. Tap Start > Settings , and then touch Communications . Tip You can also tap Start > All Programs > Comm Manager . 2. On the Comm Manager screen , touch the OFF/ON slider at the right side of the Microsoft Direct Push item . To turn on Direct Push in ActiveSync 1. Tap Start > ActiveSync and then tap Menu > Schedule . 2. Select As items arrive in the Peak times and Off-peak times boxes . Note When Direct Push is off , you need to manually retrieve your e-mail messages . Scheduled synchronization If you do not want to use Direct Push , you can set a regular schedule for synchronizing Outlook e-mail and information . 1. In ActiveSync on your device , tap Menu > Schedule . 2. Select from the available options to set the synchronization schedule . Tip You can select a shorter interval in the Peak times box and a longer interval in the Off-peak times box , so that your e-mail messages are synchronized more frequently when you are working . To set the days and hours that make up your peak and off-peak times , tap the peak times link at the bottom of the screen . Instant download through Fetch Mail The Fetch Mail feature downloads an entire e-mail immediately without the need for you to perform a full Send/Receive action . This limits the download to just the e-mail message that you want and helps save data cost . Requirement Fetch Mail works for your device only if your company is using Microsoft Exchange Server 2007 or later . 1. Tap Start > All Programs > Messaging > Outlook E-mail . 2. Open an e-mail message . Working With Company E-mail and Meeting Appointments 147 3. By default , only the first few words of the message are shown . To download the whole e-mail , finger-scroll to the end of the message , then tap Get the rest of this message . 4. Wait for the remainder of the message body to download . Notes • For information about changing e-mail sync options such as setting the download size for e-mail , see " Customizing e-mail settings " in Chapter 6. • When you receive an e-mail that contains a link to a document such as a PDF or Microsoft Office document located on SharePoint or an internal file server , you can tap the link to view the document on your device . You can view the document only if you have a Microsoft Outlook account that synchronizes with Microsoft Exchange Server 2007 or later . Exchange Server must also be set up to allow access to SharePoint document libraries or internal file servers . Searching for e-mail messages on the Exchange Server You can access e-mail messages that are not available on your device by searching your Microsoft Exchange Server mailbox . The search results are downloaded and displayed in a Search Results folder . Requirement Your company must be using Microsoft Exchange Server 2007 or later . 1. Tap Start > All Programs > Messaging > Outlook E-mail . 2. Tap Menu > Tools > Search Server . 3. In the Look for text box , enter the search keyword . 4. Choose the date range of messages to search from . 5. In the Look in list , specify whether to search in the Inbox , Sent Items , or All Folders , and then tap Search . Tip To clear the search results and return to the message list , tap Menu > Clear Results . 148 Working With Company E-mail and Meeting Appointments Flagging your messages Flags serve as a reminder for you to follow-up on important issues or requests contained in e-mail messages . Flagging messages , which has been a useful feature on desktop Outlook E-mail , can also be done in Outlook Mobile on your device . You can flag received e-mail messages on your device . Requirement Flags are enabled only if e-mail messages are synchronized with Microsoft Exchange Server 2007 or later . Flags are disabled or hidden if e-mail messages are synchronized with earlier versions of Microsoft Exchange Server . To flag or unflag a message 1. Tap Start > All Programs > Messaging > Outlook E-mail . 2. Open a message . 3. Tap Menu > Follow Up and select one of the following options : • Set Flag Mark the message with a red flag to remind yourself to follow it up . • Complete Flag Mark the message with a check mark to indicate that the issue or request in the e-mail is already completed . • Clear Flag Remove the flag to unmark the message . Note E-mail message reminders are displayed on your device if the messages are flagged with reminders and synchronized from the Exchange Server . Working With Company E-mail and Meeting Appointments 149 Out-of-office auto-reply Outlook Mobile allows you to retrieve and change your out-of-office status . Just like desktop Outlook , Outlook Mobile automatically sends an auto-reply message when you’re not available . To send out-of-office auto-reply messages 1. Tap Start > All Programs > Messaging > Outlook E-mail . 2. Tap Menu > Tools > Out of Office . 3. In the I am currently list , select Out of the Office . 4. Enter your auto-reply message , and then tap Done . 7.3 Managing Meeting Requests When you schedule and send meeting requests from your device , you can invite attendees to your meeting and check their availability . When you receive a meeting request , you can reply by accepting or declining the request . The meeting request also clearly indicates whether or not there are conflicting or adjacent meetings . Requirement Your company must be using Microsoft Exchange Server 2007 or later . To reply to a meeting request 1. When you receive a meeting request e-mail , a notification is displayed on your device . Open the e-mail . 2. Tap Accept to reply and accept the meeting request , or tap Menu > Decline if you cannot attend the meeting . 150 Working With Company E-mail and Meeting Appointments Tips • Before responding , you can check your availability during the time of the requested meeting by tapping View your calendar . • If the time of the meeting conflicts with your other appointments , a “ Scheduling Conflict ” status appears on top of the e-mail . 3. Choose whether or not to edit your response e-mail before sending , then tap OK . If you accept the meeting request , it is automatically added as an appointment in Calendar on your device . 7.4 Finding Contacts in the Company Directory In addition to having contacts on your device , you can access contact information from your organization’s Company Directory . By having over-the-air access to the Company Directory , you can easily send e-mail messages and meeting requests to anyone in your company . Requirement Access to the Company Directory is available only if your organization is running Microsoft Exchange Server 2003 SP2 or higher , and you have completed your first synchronization with the Exchange Server . When browsing Contacts , composing e-mail , or creating a meeting request 1. Synchronize with the Exchange Server . 2. Do any of the following : • While browsing through your contacts on the Contacts or Phone screen , tap Menu > Company Directory . • In a new e-mail message , tap the To box ( or tap Menu > Add Recipient ) , and then tap Company Directory on the top of the list . • When creating a meeting request and selecting required and optional attendees in Calendar , tap Company Directory . Working With Company E-mail and Meeting Appointments 151 3. Enter a partial or full contact name and tap Search . In the search results list , tap a contact to select it . 4. You can save a contact from the Company Directory to your device by selecting the contact , and then tapping Menu > Save to Contacts . Note You can search for the following information as long as that information is included in the Company Directory : First name , Last name , E-mail name , Display name , E-mail address , or Office location . ? When viewing a received Outlook e-mail message 1. Open a received Outlook e-mail message . 2. If a Search button ( ) appears to the right of the sender name in the e-mail message , tap this button to search for the sender in the Company Directory . 3. If the sender is found , the contact details will be displayed . You can then choose to save the sender to your contacts , call the sender , and more . 152 Working With Company E-mail and Meeting Appointments 