Select the product you need help with
Description of CDONTS and how to troubleshoot CDONTS problems in Windows 2000 and in Windows NT 4.0Article ID: 324649 - View products that this article applies to. This article was previously published under Q324649 On This PageINTRODUCTIONThis article describes Collaboration Data Objects for Microsoft Windows NT Server (CDONTS). This article also provides troubleshooting techniques that you can use for errors that may occur when you create an object or when you send a message. To
troubleshoot problems that may occur when you use the CDONTS objects, you have to
understand what occurs when the code
executes. Typically, problems are not related to the
code itself. Problems are generally caused by the Simple Mail Transfer Protocol (SMTP) service setup. Definition of CDONTSCDONTS is a COM component that exposes the following object interfaces:
CDONTS is primarily used by Web developers as a thin client for mailing Web forms. The DLL for CDONTS, also known as Cdonts.dll, is installed with Microsoft Windows NT Option Pack 4. The SMTP service must also be installed. Windows NT Option Pack 4 installs with backward compatibility for Microsoft Windows 2000. However, we recommend CDO for Windows 2000 (CDOSYS) for the Windows 2000 operating system. CDONTS works directly with the SMTP service on the Internet Information Services (IIS) computer. How CDONTS worksTo demonstrate how CDONTS works, use the following .asp sample code:
Creating a NewMail objectWhen you create a NewMail object, the process searches the registry and then finds the location of the Cdonts.dll file. The location of the Cdonts.dll file is retrieved from the InProcServer32 key. The NewMail object is created and then put in memory.Calling the Send methodWhen you call the Send method, the NewMail object accesses the metabase to determine where to put the e-mail (.eml) file. The NewMail object creates an e-mail message that is based on the fields that are set in the NewMail object, and then the NewMail object writes the .eml file to the location that is specified in the metabase.CDONTS is now complete. The remainder of the process is completed by the SMTP service. TROUBLESHOOTINGYou can use the techniques that follow for troubleshooting.Recognizing the errors that are indicated by object error messagesYou may receive the following error messages:Error message 1
Runtime error 429 - ActiveX Can't create object Error '8002801d' Library not registered 259176
You may receive these error messages for the following reasons:
(http://support.microsoft.com/kb/259176/
)
Error 8002801d occurs when you create a CDONTS.NewMail object
Recognizing the error message that occurs when you send a messageWhen you try to send a message, you may receive the following error message:Microsoft VBScript runtime error '800a0046'
Permission denied 286301 This problem occurs when an application is
run out-of-process in IIS. When this problem occurs, the user context of the process changes from the IUSR_MachineName account that does have access to the IIS metabase to the IWAM_MachineName account that does not have access to the IIS metabase.
(http://support.microsoft.com/kb/286301/
)
Run-time error 800a0046 with CDONTS.NewMail object
Typically, this error has two causes. Cause 1 The user under whom the .asp page is running or the script is running does not have permissions to the Pickup directory. Typically, the Pickup directory is found in the following locations:
Cause 2 The page is running in its own memory space and is being denied access to the IIS metabase. To verify this, follow these steps:
Recognizing an MTS bugBecause of a Microsoft Transaction Server (MTS) bug, you may receive the following error messages:Error message 1 Send method error '8009000d' method '~' of
object '~' failed 235541 Error message 2
(http://support.microsoft.com/kb/235541/
)
CDONTS application running in MTS fails: "Error 800900d"
Error Code
-2146893811 0x8009000D 'Key Does Not Exist' Recognizing a path errorYou may receive the following error messages:Error message 1 ERROR_SHARING_VIOLATION SMTP ERROR: 80070020: The process cannot access the file
because it is being used by another process
Retrieving messages from the BadMail directoryAfter the CDONTS object writes the .eml file to the Pickup directory, the SMTP service takes over. The SMTP service moves the message to the Queue directory for processing. If anything is wrong with the e-mail message, the e-mail message goes directly to the BadMail directory. If anything is wrong with the SMTP service, the e-mail message goes to the BadMail directory, or the e-mail message stays in the queue, and a returned (.rtr) file is created.If the message goes directly to the BadMail directory, open the message by using Notepad. Make sure that the X-Sender field and the X-Receiver field contain valid e-mail addresses. Make sure that a friendly name is not used in the From field. A friendly name may or may not work. This depends on the following:
Retrieving messages from the Pickup directoryIf the message stays in the Pickup directory, make sure that the SMTP service is running. The mail may stay in the Pickup directory if Exchange Internet Mail Service (IMS) is running on the same computer as the IIS SMTP service. You can have either the Exchange IMS running or the IIS SMTP service running but not both.If your computer is running Exchange IMS, and the mail stays in the Pickup directory under C:\Inetpub\Mailroot, the IIS metabase is pointing at the wrong location. You must change the IIS metabase so that the IIS metabase points to C:\Exchsrvr\Imcdata\Pickup. You can use the AdsUtil.vbs utility to make this change. For more information about pointing to a location, click the following article number to view the article in the Microsoft Knowledge Base: 238956 To verify that the SMTP service is running, follow these steps:
(http://support.microsoft.com/kb/238956/
)
Error 80070003 "Path not found error"
Click Start, click Run, type Telnet localhost 25, and then click OK. If you receive a return code of 220, the SMTP service is running. If you are disconnected, the SMTP service is not running. Retrieving messages from the Queue directoryIf the mail stays in the Queue directory, and if an .rtr file is created, open the .rtr file by using Notepad. You may be able to determine the problem by looking at the .rtr file in Notepad.Troubleshooting summaryIf the problems are not resolved by using these troubleshooting techniques, you may have to contact an engineer to verify that the problems occur because of the IIS SMTP service. However, before you do this, you may want to test the SMTP service manually.For more information about testing the Windows 2000 IIS SMTP service, click the following article number to view the article in the Microsoft Knowledge Base: 286421
For more information about how test the SMTP service for Windows NT 4.0, click the following article number to view the article in the Microsoft Knowledge Base:
(http://support.microsoft.com/kb/286421/
)
How to test Windows 2000 IIS SMTP services manually
153119
(http://support.microsoft.com/kb/153119/
)
Telnet to port 25 to test SMTP communication
Properties | Article Translations |


Back to the top








