Master Exchange 2007

powershell, automation & more…

Cannot get External Out Of Office (OOF) working with Exchange 2007

Posted by shauncroucher on August 31, 2009


There are several areas that need to be checked in order to get OOF working for Exchange 2007.

Thankfully testing and troubleshooting can be easily achieved using powershell.

These are items on the itinerary for checking:

1) Does the Remote domains ALLOW External OOF, and if the users are using Outlook 2003, does it allow OOF for external domains?

By default ONLY Outlook 2007 clients can send externally. This is because Outlook 2003 has no way to define that a OOF message should be for External users or Internal users.

To check the setting type the following:

Get-RemoteDomain | ft Id*,*OOF*

If you have Outlook 2003 clients the AllowedOOFType needs to read ‘ExternalLegacy’. If you have only Outlook 2007 users it should read ‘External’

For the most part you will just have one Remote Domain (unless you need to manage message settings for a few domains or perhaps if you have a sister company. In this case, you need to decide if you would like users that define an OOF as Internal to be delivered to these Remote Domain?

2) Does the user have rights to send Externally

By Default users DO have the right to send Externally, but worth checking the setting here:

Get-Mailbox <IDENTITY> | fl *OOF*

The ExternalOOFOptions should read External, otherwise they will not be able to send External OOF’s.

3) Are you using a Smarthost to send outbound mail?

If so, you should be aware that when an OOF message is dressed for sending, it DOES NOT INCLUDE a Return-Path address in the message envelope (The MAIL FROM is set to <>). For this reason, many smarthosts will NOT relay the messages on.

It is to comply with RFC guidelines. Message Disposition Notification (MDN) messages are defined in RFC 3798. which states that messages of this type should be sent with a blank sender (ie: <>). This behavior is new in Exchange 2007, E2003 and eariler set the sender field for OOF messages.

http://tools.ietf.org/html/rfc3798

http://technet.microsoft.com/en-us/library/bb430743.aspx

So, how do you detect if this is the cause?

Well, by using one of two tests you can see if this is the problem. First of all use the MessageTrackingLog to find the message and its associated failure message:

Begin by sending an email from outside to the user who has OOF enabled. Make sure you use a unique subject such as ‘QWERTY1′

Now, use the following command on your Edge Transport server (or Hub server on the edge of your network)

Get-MessageTrackingLog | where {$_.MessageSubject -eq ‘QWERTY1′} | fl

Now, if you see one that says failed, you can look at the RecipientStatus – this will tell you why it was FAILED. Usually this will give a 550 code ‘Relaying denied’ or ‘Unable to relay’. This is the evidence you are looking for. It is likely the cause is because there is no Reply-To in the envelope.

To know this is the cause for sure, you can try using DNS to route mail temporarily and see if this resolves the issue.

Also remember that by default, OOF messages will only send ONCE per external sender per  ‘Out of office session’. So, if you test OOF using an external user account, the OOF attempt to the external user account will run once, and will not attempt to deliver further OOF messages when you send subsequent emails from the same external account. So, each time you test OOF (if using the same external email account) you need to TURN OOF Off, then turn it back on again!

Hopefully you found this article useful, feedback always welcome!

Shaun

About these ads

4 Responses to “Cannot get External Out Of Office (OOF) working with Exchange 2007”

  1. Correction:
    Thanks and appreciate these quick and simple tips that made debugging easy.

    Cheers,

  2. Chris said

    Thx Shaun,

    This article helped me solve an external OOF problem.

  3. Paul said

    So with this being said, how do I fix it? If the MAIL FROM shows , how do I get this to work? Because our out of office continues to fail. Also, if this is suppose to comply with RFC, then why is that it fails?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.

%d bloggers like this: