INFO: EDK Sends Read Receipt for Reading a Read Receipt

Article ID: 238079 - View products that this article applies to.
This article was previously published under Q238079
Expand all | Collapse all

On This Page

SUMMARY

The EDK sample gateway causes the creation of a read receipt while opening a read receipt message.

MORE INFORMATION

SDK samples located in the SDKDIR\samples\dbmsg\exchange\gwsample directory contain sample code for a gateway that is provided with the platform. With this sample code a gateway for the Microsoft Exchange Server can be built and configured for mail transfers.

In GWSample.c the return receipt is requested explicitly as in the function definition DWORD ProcessMtsIn(LPVOID lpParameter), see the following code fragments.

For a non-read receipt:
   else if((_tcsstr(lpszMessageClass, TEXT("REPORT.IPM")) != NULL) 
               && _tcsstr(lpszMessageClass, TEXT(".IPNNRN")) != NULL))
   {

            hr = HrMAPISetPropBoolean(
                (LPMAPIPROP)lpEnvelope,
                PR_NON_RECEIPT_NOTIFICATION_REQUESTED,
                TRUE);  

            if(FAILED(hr))
            {
                hr = HR_LOG(E_FAIL);
                goto cleanup;
            }
				
For a read receipt:
   else if((_tcsstr(lpszMessageClass, TEXT("REPORT.IPM")) != NULL) &&
                (_tcsstr(lpszMessageClass, TEXT(".IPNRN")) != NULL))
        {

            hr = HrMAPISetPropBoolean(
                (LPMAPIPROP)lpEnvelope,
                PR_READ_RECEIPT_REQUESTED,
                TRUE);  

            if(FAILED(hr))
            {
                hr = HR_LOG(E_FAIL);
                goto cleanup;
            }
				
Again, Ipm_in.dll in Convcls.cpp in the definition of function HRESULT CIPMConvert::HrSetEnvelopeProps() receipt is asked explicitly for a read receipt as well as a non-read receipt as shown in the following code fragment.
   if ( m_MsgType == mtNRN )   // have a non-read notification
        {
            rgEnvProps[iNotifyReqVal].ulPropTag = 
                PR_NON_RECEIPT_NOTIFICATION_REQUESTED;
        }
    
        else    // have a read notification
        {
            rgEnvProps[iNotifyReqVal].ulPropTag =
               PR_READ_RECEIPT_REQUESTED;
        }

        rgEnvProps[iNotifyReqVal].Value.b = TRUE; 
				

Work Around

You need to modify the code to remove the explicit request of receipts for (non)read receipt and build a new Ipm_in.dll and GWSample.exe.

Properties

Article ID: 238079 - Last Review: March 4, 2004 - Revision: 2.1
APPLIES TO
  • Microsoft Exchange Development Kit 5.5
  • Microsoft Exchange Server 2003 Software Development Kit
Keywords: 
kbinfo kbmsg kbnofix KB238079
Retired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.

Give Feedback