More CEWP treasures languishing on my hard drive. I haven't checked to see if others have posted similar CEWP ideas but I doubt it.
The Out-of-the-Box (OOB) OWA Web Part initially looks like this:
It must be configured (something most user’s find difficult):
And it has limited functionality, you are often prompted to authenticate again, and it takes longer to load than the rest of the page:

The following CEWP lets users that have the Outlook client on their desktop work with any folder in a much richer interface than the OOB OWA Web Part. Since it just shows the local folders from Outlook, it also doesn't require configuration like the OOB OWA Web Part does. The Inbox and Tasks are used in the code sample but it could show Contacts, a public folder, etc. The sample also shows two folders but you can just show one or show a whole bunch organized within HTML however you’d like to display them. Of course, it’s only as up to date as Outlook:

<!-- Copy and paste this code into a CEWP -->
<OBJECT classid="CLSID:0006F063-0000-0000-C000-000000000046"
width="100%">
<param name="Folder" value="Inbox">
</OBJECT>
<OBJECT classid="CLSID:0006F063-0000-0000-C000-000000000046"
width="100%">
<param name="Folder" value="Tasks">
</OBJECT>
Yep, that’s it -- amazing isn’t it. Not really, it’s just using an object already installed on the desktop along with Outlook. So, you get all the functionality that you would normally have in Outlook on the Web page.
Unfortunately, none of these options provide the ability to create a NEW email message. So, I created this CEWP that has all the code necessary to create a new message. I just call the JavaScript on the OnClick of a button. I’m sure that the interface and the code could get a lot fancier (new Task, new Contact, etc.) but you get the idea (script does not work with Outlook 12):

<!-- Copy and paste this code into a CEWP -->
<script language="JavaScript" type="text/JavaScript">
function genNewEmail()
{
try
{
o = new ActiveXObject("Outlook.Application");
if(o)
{
mailFolder = o.getNameSpace("MAPI").getDefaultFolder(6);
//You could also use custom forms like IPM.Note.CustomForm
mailItem = mailFolder.Items.add("IPM.Note");
mailItem.Display(0)
}
}
catch(e)
{
window.status = e.Message;
}
}
</script>
<input type="button" value="New Message" NAME="cmdNewMessage" OnClick="genNewEmail()">
When you click on the button you should get the new message dialog from your local Outlook installation.
<Todd />
PS: Watch out, code pasted into a blog post like this can introduce line breaks and odd spacing that can cause problems. I try to keep my lines shorter than 80 characters but look for unnatural line breaks.