Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   ASP General (http://www.velocityreviews.com/forums/f65-asp-general.html)
-   -   accessing the delivery receipt using CDO.Message (http://www.velocityreviews.com/forums/t803341-accessing-the-delivery-receipt-using-cdo-message.html)

Sany 06-20-2007 02:48 PM

accessing the delivery receipt using CDO.Message
 
Helo,

I am using myMail.DSNOptions = 14 n a script that uses CDO.Message to
send an internal mail. Is there a way to access the delivery status in
the same script and report a bad route...below is an example I would
like to achieve. Any help is greatly appreciated.

Example:


Sub sendMail(msg)
Set myMail=CreateObject("CDO.Message")
myMail.Subject="Queues|Critical"
myMail.From="ExMgmt@us.panasonic.com"
myMail.To="santhoshs@in.ibm.com"
myMail.TextBody=msg
myMail.DSNOptions = 14
myMail.Send
set myMail=nothing

<----------------------------If message not delivered Wscript.echo
"mesage not delivered" else "great job" end if ------------->

End Sub


Daniel Crichton 06-21-2007 07:56 AM

Re: accessing the delivery receipt using CDO.Message
 
Sany wrote on Wed, 20 Jun 2007 07:48:58 -0700:

> Helo,
>
> I am using myMail.DSNOptions = 14 n a script that uses CDO.Message to
> send an internal mail. Is there a way to access the delivery status in
> the same script and report a bad route...below is an example I would
> like to achieve. Any help is greatly appreciated.
>
> Example:
>
> Sub sendMail(msg)
> Set myMail=CreateObject("CDO.Message")
> myMail.Subject="Queues|Critical"
> myMail.From="ExMgmt@us.panasonic.com"
> myMail.To="santhoshs@in.ibm.com"
> myMail.TextBody=msg
> myMail.DSNOptions = 14
> myMail.Send
> set myMail=nothing
>
> <----------------------------If message not delivered Wscript.echo
> "mesage not delivered" else "great job" end if ------------->
>
> End Sub


Given that the delivery receipt might not be received for minutes, hours.,
days, etc after sending, if at all, this isn't a simple thing to accomplish.
Also, a DSN is returned to the From address as an email - this means that
you'd need to poll the POP3/IMAP account for that address looking for the
DSN in order to show the status.

What you might be able to achieve is if you can connect to the recipient's
SMTP server and get an immediate response (ie an error from the Send method)
which would indicate if the account exists or not. It won't always work (for
example, the recipient server might be a simple relay that doesn't validate
the existence of addresses during the SMTP conversation), but as you say
you're sending these internally then this might well be the solution you're
looking for.

Dan



Anthony Jones 06-21-2007 12:14 PM

Re: accessing the delivery receipt using CDO.Message
 

"Daniel Crichton" <msnews@worldofspack.com> wrote in message
news:utffxm9sHHA.1208@TK2MSFTNGP05.phx.gbl...
> Sany wrote on Wed, 20 Jun 2007 07:48:58 -0700:
>
> > Helo,
> >
> > I am using myMail.DSNOptions = 14 n a script that uses CDO.Message to
> > send an internal mail. Is there a way to access the delivery status in
> > the same script and report a bad route...below is an example I would
> > like to achieve. Any help is greatly appreciated.
> >
> > Example:
> >
> > Sub sendMail(msg)
> > Set myMail=CreateObject("CDO.Message")
> > myMail.Subject="Queues|Critical"
> > myMail.From="ExMgmt@us.panasonic.com"
> > myMail.To="santhoshs@in.ibm.com"
> > myMail.TextBody=msg
> > myMail.DSNOptions = 14
> > myMail.Send
> > set myMail=nothing
> >
> > <----------------------------If message not delivered Wscript.echo
> > "mesage not delivered" else "great job" end if ------------->
> >
> > End Sub

>
> Given that the delivery receipt might not be received for minutes, hours.,
> days, etc after sending, if at all, this isn't a simple thing to

accomplish.
> Also, a DSN is returned to the From address as an email - this means that
> you'd need to poll the POP3/IMAP account for that address looking for the
> DSN in order to show the status.


An alternative address for the disposition note to be sent to can be set
using:-

myMail.Fields("urn:schemas:mailheader:disposition-notification-to") =
"watchthis@servermail.mydomain.com"
myMail.Fields.Update

Add a "servermail" mail domain (which allows relays only from local addesses
and doesn't foward) to a local SMTP server (I typically have one installed
on the same server as my ASP is running). Make sure the local DNS service
has a MX record for it.

Now the dispostion notes end up as *.eml files in the servers drop folder.
This can be polled for eml files and the notes can then be consumed. Of
course this is still an asynchronous process.






All times are GMT. The time now is 02:10 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.