Professional Geek
RSS icon Email icon Bullet (black)
  • The Case of the Vanishing E-mails

    I just wanted to relay a support call I’ve just dealt with as it really had me stumped. For a while I was concerned there was something really bad happening but now that I’ve gotten to the bottom of it I can breathe easy as it wasn’t actually all that serious

    Our client called to say that she was expecting an e-mail from their German contractor and it hadn’t arrived. He’d resent it a couple of times to confirm he’d got the email address, etc correct

    I logged onto the server and used Exchange message tracking to see if the e-mail had arrived

    The message did arrive at the server as expected

    image

    My next port of call was to logon to the PC and check Outlook, sometimes I’ve seen similar cases where a filter has been applied by mistake that means the user has “lost” the message. Unfortunately this drew a blank as well

    I used the advanced find feature to display all emails that had been delivered today and I even created a search folder to do the same thing but the message was nowhere to be seen

    I logged in via Outlook Web Access to see if the message was visible there as I’ve also seen cases where the message is corrupt and Outlook can’t display the message but OWA seems to do ok with it. Again no luck here

    So I checked to see if she hadn’t deleted the message by mistake. The message wasn’t in there but when I used the “Recover Deleted Items” feature in Outlook there is was! I thought this would be a simple matter of clicking the message and pressing restore……unfortunately not

    After I clicked restore I expected the message to reappear in the Inbox but after waiting a few minutes, nothing

    Confused I went back into the dialog in case I’d selected the wrong message. The message was still available for restore so I clicked it again. Once again the message failed to reappear so I went back in again

    One of the columns is “Deleted On”, I noticed that time was only a minute ago

    image

    I recovered the item again, noted the time, waited a minute and went back in and lo and behold the deleted on time had changed to the time just after I’d recovered the item

    Confused I turned to the server, this particular server uses McAfee GroupShield for checking inbound messages for malware so I trawled through the logs to see if it was picking this up as a dodgy message. I wasn’t holding my breath though as this isn’t how GroupShield works (the message is usually quarantined or a part of it replaced and the user alerted). As expected this was a dead end

    I was starting to get a little paranoid now so checked the PC over for malware and my initial checks didn’t turn anything up. I even used SysInternals Process Monitor to track what was going on during the recovery to see if there was an outside process doing something but again this didn’t show anything of use

    I fired up Outlook in safe mode but didn’t get very far as the recover items feature is an add-in itself!

    I decided to keep my attentions on Outlook and created a new profile for the user. This time I disabled Outlook cache mode and recovered the item again

    This time the message reappeared as expected!!

    As soon as this happened a huge light bulb came on somewhere in the back of my head :-)

    There is a feature in Outlook that will ONLY work when cache mode is enabled

    Outlook Junk Filter

    I went into the options for this it hit me straight in the face!

    This is how the junk filter was configured on the PC

    image

    Can you see the problem?

    Only allow from safe lists and permanently delete suspect messages!!!

    I’m surprised she gets any email at all! But if she only receives messages from a group of people that she always emails then they would be on her safe list

    The junk filter checks for messages as soon as they arrive in the inbox, irrespective of whether that is because the message is an incoming e-mail or has just appeared there after being restored

    I have no idea why this has changed. It must have only have changed recently because as I said earlier the configuration would surely mean she would notice lots of emails going missing.

    Once I turned off the junk mail filter I was able to recover the message ok

    Ordinarily when a client doesn’t require the Outlook junk filter because they are getting their spam filtered elsewhere I use the Office ADM files and setup group policy to explicitly disable the Outlook filter (Office 2007 version here) so I need to go and set this up I think!

    Minor panic over!

  • Can’t set message flags in OWA using IE8

    Busy busy weekend to go before the busy week I’m expecting!

    This morning I got a call from a remote user to say they couldn’t set message flags when using Outlook Web Access (Exchange 2003)

    image

    I logged into an account on the same server and had no problems setting the flag

    Then I discovered they were using IE8 so fired up my laptop (I’m still using IE7 on the desktop at work because I keep bumping into compatibility issues) and sure enough I had the same problem and noticed IE was reporting a script error

    Luckily I didn’t have to look too hard

    Error message when you click the flag icon of a message in the message list view in Outlook Web Access 2003 when you are using Internet Explorer 8: "’firstchild.firstchild’ is null or not an object"

     

    I’ve applied the hotfix in the article and the problem has been solved!

  • HTTP 500 Error using Exchange ActiveSync on Exchange 2003

    Just a quick one so I remember this next time!

    One of our clients hooked up their first mobile device last week (it was an iPhone!)

    They called us to ask for the details but they were constantly prompted for the password. I was visiting site the same day so had a look myself. The settings had been entered correctly so i logged onto the server and checked the IIS logs

    I could see entries for the iPhone connecting but nothing in the security log that indicated a problem with the user name and password

    The next step was to use the excellent www.testexchangeconnectivity.com website to see if it could connect. It couldn’t and i got a HTTP 500 error with a link to click on which eventually led me to:

    http://support.microsoft.com/kb/817379

    Basically when using a single Exchange server there are some steps you need to take as the virtual directory ActiveSync uses needs HTTPS disabled whereas i need it enabled for OWA (the full technical details are in the KB article – your device is still connected to the server over HTTPS)

    The problem doesn’t occur if you have a front-end/back-end Exchange setup or if you are running SBS 2003 as the connect to the Internet Wizard takes care of that for you (check the steps in the KB article and compare it to your SBS…they will be the same)

    I also came across a great blog post by Corey Gilmore, with the full set of steps needed to configure a single Exchange 2003 server for ActiveSync (including ISA configuration) with screenshots so there is no need for me to reproduce that here :-)

  • Exchange 2003 – Greylisting and Delayed NDR’s

    Recently I’ve heard from various different clients having problems when sending emails to the NHS

    The error message usually reads

    <****.com #4.0.0 smtp;451 ******@****.nhs.uk>… Requested mail action not taken: mailbox unavailable

     

    Due to the message specifically saying “mailbox unavailable” and it’s several different clients all sending to the same organisation I’ve been placing the blame with the NHS

    This morning I found out that assumption was wrong

    I was doing some work on one of our clients servers and needed to restart the SMTP service

    About two minutes later I got a call from the client in question to say they had all suddenly started get a glut of NDR’s

    Initially it looked like they were all for messages sent to the NHS but we found one or two that were to different domains and also spotted that some of these messages were originally sent last week

    It was one of the other emails that made me look into this further. The error in this case was

    <****.com #4.0.0 smtp;450 <****@******.com>: Recipient address rejected: Greylisted for 5 minutes>

     

    Greylisting!

    This is where a mail server temporarily rejects a message when it is first sent. When the mail server retries it will be accepted on the second attempt. The theory is that spammers get so many rejections they don’t try again (more info available at http://www.greylisting.org/ and http://en.wikipedia.org/wiki/Greylisting)

    While looking into this previously I’d been told that the NHS were using greylisting as part of their spam prevention measures

    Looking at the two error messages that both use the same SMTP failure code (4.0.0) which indicates a temporarily failure (i.e please try again!)

    The NHS description is less helpful than the other one

    So i still had to figure out what had caused all the NDR’s to suddenly appear

    On the greylisting.org site there is a page called “Problem MTA’s”. This a single page with one entry

     

    Microsoft Exchange 2003 and greylisting

    There is a bug in MS Exchange 2003 when sending to greylisting servers. Sometimes the server will fail to re-queue messages sent to some servers that implement greylisting. More information:

    groups.google.com/group/mi…64d5749ee7cb

    groups.google.com/group/mi…07ac14b116db

    According to ozinm on our forums there is a possible hotfix available from Microsoft now: www.greylisting.org/forums/showthread.php?tid=18

     

    The threads there talked about the exact same problem I had. It also looks like the problem has been around October 2005. It has various workarounds including using a batch file to restart the SMTP service every day!

    Eventually a hotfix mentioned is here: 934709 

    HOWEVER! This is for servers that are running Windows 2003 with the SMTP service. It doesn’t apply if your using Exchange 2000 / 2003

    After a bit more searching I finally found this

    Article ID: 950757 – E-mail senders do not receive an indication that some messages have been held by Exchange Server 2003 until the SMTP service, the Microsoft Exchange Information Store service, or the Exchange server is restarted

    This fits the problem exactly. I’ve applied to the server I’ve been dealing with today so I’ll keep an eye on it and apply to the other servers that have noticed similar issues

    Another solution would be to use a smart host to deliver your messages for you

    One thing i have learnt here is that I probably should have double checked the SMTP code instead of relying on the error description. I generally only get to the SMTP code if I can’t find a problem using other troubleshooting methods (Exchange messages tracking, telnet tests, etc)

  • Exchange 2003 SP2 – Error code 0xC0070643

    The Exchange migration I did this week involved moving the current Exchange setup onto new hardware (we talked about Exchange 2007 / Windows Server 2008 but the client was going with the “if it’s not broke don’t fix it” viewpoint combined with a tight budget!)

    After I’d installed Exchange on the new hardware one of the first things I did was install Service Pack 2

    I got the following error

    Setup failed while installing sub-component Exchange ActiveSync with error code 0xC0070643 (please consult the installation logs for a detailed description).  You may cancel the installation or try the failed setup again.

    This rang a bell and sure enough a quick look on Susan’s blog found the following posts which pointed to a registry key for the XML Parser in place that needed to be deleted

    Okay I have a problem with my Exchange 2003 sp2

    and

    Exchange 2003 sp2 success on my home server!

    and picture of the error here

    Thing is this was a brand new installation. So there wasn’t anything else that had installed the XML Parser so no registry key to delete!

    After a bit more digging I found this post by Colin Bowern

    Exchange 2003 SP2 Install Fails because of MSXML

    But my error message was different to the above and Susan’s

    I basically got

    Product: Microsoft XML Parser — Product Installation failed

    Well thanks.

    So I located the msxml3.msi file in the Exchsrvr\bin directory and tried to run it manually. I simply got the same error

    Obviously the setup was trying to install using that MSI and failing so I borrowed the trick Colin mentions in his post

  • Download the Microsoft XML Parser 3.0 (Service Pack 7 is the version i used)
  • Rename the existing msxml3.msi in Exchsrvr\bin to msxml3.msi.original (or whatever works for you!)
  • Place a copy of the latest file you downloaded inside Exchsrvr\bin
  • Rename it to msxml3.msi.  This will leave you with msxml3.msi and msxml3.msi.original
  • Click Retry on the error and it should continue as planned.

    This worked for me so I’m making a note here in case I need it again!

  • Clearing Exchange 2003 SMTP Queues

    Earlier this week we had a client whose junior sales person decided to do a mail shot to some of their customer base. He wanted to send some attachments with information. The attachments totaled about 5mb in size (the default outgoing size limit had been changed at their request some time ago)

    So the sales guy clicked the send button and the 5mb message was submitted to exchange to send out to 150 recipients

    See the problem here? The exchange server was busy trying to send over 750MB of email which was stopping everything else from going out

    When I logged onto the server and viewed the queues I was a bit that annoyed that I’d have to go into every queue (one per domain), click “find messages”, then “find”, then delete all the offending messages. I knew there must be a better way but decided to look into it later as the problem needed sorting. It took me about half an hour but I cleaned up and all was well

    Until the day after.

    The same guy did exactly the same thing but to over 200 recipients. After late time I’d suggested he uploaded the attachments to his website and had a link in the email but that advice fell on deaf ears

    So I had no wish to go through all the queues again

    I found this post by Chrissy LeMaire most helpful. She has a vbscript that you can use to completely wipe out ALL the messages in ALL queues.

    I didn’t want to be quite so destructive as there were legitimate messages still in the queue so I made some changes so that the script asks you who sent the message and only deletes the specific messages. It also has a “report” mode which is it a bit like a “are you really sure” message. This will just let you know how many message would have been deleted

    Here is the script. I’ve marked my changes so that the script can be returned to it’s original state

    On reflection my changes are a bit rough and ready and when I get some more time I may change the WMI query so that it returns just the messages I want instead of returning all the messages and then checking to see which ones to delete though that’s just me being picky I guess

    Also take a look at Chrissy’s site. It’s very useful and has been added to my feed list!

    'Original Author: Chrissy LeMaire
    ' Copyright 2003 NetNerds Consulting Group
    ' Script is provided AS IS with no warranties or guarantees and assumes no liabilities.
    ' Website: http://www.netnerds.net
    ' Description: This scripts empties out the entire Exchange queue. USE WITH CAUTION.

    ' Modified by Andy Parkes - Changes indicated below
    ' www.andyparkes.co.uk

    ' Andy's new section 1
    dim txtemailAddress
    dim mailcounter
    dim deletemode
    mailcounter = 0
    deletemode="NO"
    txtemailAddress = LCASE(INPUTBOX("Please enter the email address SENDER to clear"))

    if txtemailAddress = "" then
    WScript.quit
    end if
    deletemode=MSGBOX("Click YES for DELETE MODE or NO for REPORT MODE",vbYesNo)
    ' End of new section 1

    Set objWMIExch = GetObject("winmgmts://./root/MicrosoftExchangeV2")
    Set objLinksList = objWMIExch.ExecQuery ("Select * from Exchange_SMTPLink")
    For each objLinkInst in objLinksList
    strSQL = "Select * from Exchange_SMTPQueue where "
    strSQL = strSQL & "LinkID='" & objLinkInst.LinkID
    strSQL = strSQL & "' and LinkName='" & objLinkInst.LinkName
    strSQL = strSQL & "' and ProtocolName='" & objLinkInst.ProtocolName
    strSQL = strSQL & "' and VirtualMachine='" & objLinkInst.VirtualMachine
    strSQL = strSQL & "' and VirtualServerName='" & objLinkInst.VirtualServerName & "'"
    Set objQueuesList = objWMIExch.ExecQuery (strsql)
    For each objQueueInst in objQueuesList
    i = i +1
    If i > 7 And InStr(objQueueInst.QueueName,".") > 0 Then 'make sure its not the built in stuff
    strSQL = "Select * from Exchange_QueuedSMTPMessage where " '<-- This class requires that you pass ALL the variables below in the where clause
    strSQL = strSQL & "LinkID='" & objLinkInst.LinkID
    strSQL = strSQL & "' and LinkName='" & objLinkInst.LinkName
    strSQL = strSQL & "' and ProtocolName='" & objLinkInst.ProtocolName
    strSQL = strSQL & "' and QueueID='" & objQueueInst.QueueID
    strSQL = strSQL & "' and QueueName='" & objQueueInst.QueueName
    strSQL = strSQL & "' and VirtualMachine='" & objLinkInst.VirtualMachine
    strSQL = strSQL & "' and VirtualServerName='" & objLinkInst.VirtualServerName & "'"
    Set objQueuesList1 = objWMIExch.ExecQuery (strsql)
    For each objQueueInst1 in objQueuesList1
    If i > 7 And InStr(objQueueInst1.QueueName,".") > 0 Then
    ' Andy's new section 2
    if LCASE(objQueueInst1.sender)=txtemailAddress then
    mailcounter = mailcounter + 1
    if deletemode=6 then
    objQueueInst1.DeleteNoNDR
    end if
    end if
    ' End of new section 2
    End If
    Next
    End If
    Next
    Next
    ' Andy's new section 3
    WScript.echo "Operation completed - " & i & " queues scanned - " & mailcounter & " messages processed"
    ' End of new section 3

  • Outlook 2007, public folders and categories

    I had an e-mail conversation with a client this week who uses Exchange public folders to share contacts. He initially was planning on creating sub-folders to group the contacts(suppliers, customers, etc)

    I suggested he used categories as it would mean it was still one place to go for their contacts but they could use a view to group them as needed

    I know this is SharePoint territory…but until they made the move to Office 2007 the inability to edit directly in Outlook wasn’t desirable for them. They now have Outlook 2007 and plans are underway to get them onto WSS 3.0…I digress

    So he went away and created lots of categories and emailed me back to say no-one else could see his newly created categories.

    This is normal behaviour, Outlook 2007 now stores categories directly in the mailbox as opposed to the registry in older versions of office

    So back to the public folder as this doesn’t help solve the problem!

    However, he can still categorise the contacts as the item category is totally separate from the users list of categories

    e.g If I categorise a contact as “SUPPLIER” and someone else in the office then opens the contact it will still be marked as supplier even if he doesn’t have that category setup on his system.

    Fine.

    But what if we need to standardise on a set of categories? Without having to re-type all the custom categories this is the solution I came up with

    Create a dummy contact (call it anything you like) in the public folder

    Categorise it with all the categories you need to copy

    The on the PC you want to copy the categories to do the following

    Open the item, click CATEGORIZE, then ALL CATEGORIES and you’ll get a screen similar to the followingblog 1

     

    It shows the categories not on your list as “(not in Master Category list)”

     

     

     

    Highlight one of them and click the NEW button to get this screen

    blog2

    The name has been pre-populated.

    Just click OK to get the category saved

     

    The only thing this won’t do is bring the colours across but in terms of grouping/viewing the colours are partly irrelevant

    Repeat with other categories until your done. Not the most elegant solution but much quicker than typing them all out

    If anyone knows of an easier way I’d love to hear from you!

  • Change Mail Redirection in VBScript – Exchange 2003

    Was doing some housekeeping and came across a script i thought i’d share

    We had a customer who had a general information style email address (info@blahdomain.com) that due to job sharing two different people were responsible for checking the email and replying. To add to this these people were external to the organisation. They wanted the email to be re-directed to their own email addresses (i did suggest that they just use Outlook Web Access and share a mailbox but they weren’t interested!)

    So i created two external contacts and re-directed the email to the user. However this wasn’t something i wanted to be doing myself a couple of times as week as the responsibility changed and i didn’t trust the users!

    So i created a script that ran on a scheduled task to make the change. I found it incredibily difficult to find anything out about this method at the time so here it is
    ‘ Change this name to alter re-direction
    strUserName=”Parkesy”

    Set objUser = GetObject (“LDAP://cn=INFOUSER,ou=AP Users,dc=blahdomain,dc=local”)
    objUser.Put “altRecipient”, “cn=” & strUserName & “,ou=AP Users,dc=blahdomain,dc=local”
    objUser.Put “DeliverandRedirect”, True
    objUser.SetInfo

    I’ve trimmed the code down for display but all it does is find the “Info User”, reset the “Alt Recipient” and “Deliver and Redirect” properties, and persist the changes 

    I created two copies of this and setup a scheduled task to make the switch

    It seemed to work quite well but eventually the stopped the job share and it became an internal users responsibility and the script got “retired”

    Hope it is of use to someone else

    I used this script on an Exchange 2003 box. I haven’t tested it on an Exchange 2000 box but can’t see an inital reason for it not to.

    Use the code as you see fit but i take no responsibility for anything that may occur due to it’s usage (blah blah blah!)

    *-* Slight Update *-*

    Going through some posts i hadn’t gotten around to reading and saw this post from Dave Overton which links to a tutorial on MSExchange.org which talks about how to set all this up. My post assumes this is all in place

  • Internet Explorer Crashes When You Send Email in OWA 2003

    This has probably been blogged elsewhere but came across this today so thought i’d post

    Customer tried to send email using OWA 2003 (with IE7). When she tried to compose a new e-mail she just got a red cross where the email body should be. I duly installed the SMIME control and all was well (though i ended the phone call with something in my head telling me they was something else i needed to do)

    She called back a few minutes later. When she clicked the send button IE crashed

    Found this in the event log 

    Faulting application iexplore.exe, …..(blah blah)…….faulting module unknown

    Quick look around some newsgroups and i remembered the other thing i needed to do

    Fix the Exchange

    I installed the hotfix from the following article

    http://support.microsoft.com/?kbid=924334

    There were are some other hotfixes for similar issues but this is the one i used

    Installed and all worked fine.

    She got prompted to upgrade the SMIME control (which she did) and she successfully sent me a test email