Knowledge Base

FIX: sp_processmail Will Only Process One Query per Execution

Article ID: 152416

Article Last Modified on 2/14/2005


APPLIES TO


This article was previously published under Q152416

SYMPTOMS

The stored procedure sp_processmail will only process one query sent via e- mail each time it is run if SQLMail is running with Microsoft Exchange Client software.

CAUSE

The execution of xp_deletemail is breaking the loop in sp_processmail, which is used to process all of the messages.

WORKAROUND

If you are scheduling sp_processmail as a task, you have the following options:
  1. Change the task to run every minute. Note that this will work as long as there is not more than one query per minute sent to SQL Server via e-mail.
  2. Make multiple tasks to run sp_processmail that run every minute. This provides a workaround for option 1 above.
  3. Change the sp_processmail stored procedure not to delete the mail it responds to by commenting the xp_deletemail call.
  4. Change the sp_processmail stored procedure to not run in a loop but to instead do several iterations.

STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server version 6.5.

Additional query words: xp_sendmail xp_deletemail

Keywords: kbbug kbfix KB152416