I am running seven Windows Services, all ATL C++ applications, that
use CDO COM interface to send emails. Code uses com_ptr_t types.
Code initializes an IMessagePtr when the application starts up, as a
class scope member variable, and uses it repeatedly to send. I am
noticing sporadic failures to connect in several of the applications.
The error message always indicates error code CDO_E_SMTP_SEND_FAILED
with no mail server transport error code. These could be due to
network connectivity issues, but they are just frequent enough, on the
order of a half dozen times a day, that I suspect otherwise. Also, we
have used CDO to send out many thousands of emails at a time using
scripts without any problems. The applications all run on Windows
2000 server with SP3. The version of cdosys.dll is 6.1.3940.29. I've
spent the past couple of days combing newsgroup archives for similar
posts and replies without uncovering anything useful. I've tried
increasing the cdo timeout to no effect. I've experimented with very
long messages, but that made no difference. I have noticed that the
problem is less severe in the service that we are currently testing
when I turn off one of the other services which sends email in
greatest volume. This suggests some kind of contention issue, but I
am not sure at what level in the architecture it is occurring if this
is the case, or how to further diagnose whether this is the case. Is
there a technique for listening on the winsock socket connection that
cdo is using to communicate with the mail server? Can I tell which
process is reading or writing while listening? Are there known issues
with CDO and Services? With CDO and multiple processes on one server?
Any help would be appreciated.