Setting Expiry of a CDO Message (SMTP)?

I'm sending emails within my company to users, using CDO, Roughly like below.
I'd like the emails to self expire. Is this possible?
I know that you can do this by sending the emails through Outlook, but that isn't possible in my situation. I need to use the method below.

----------------------------------------------------------------------------------------------------------------------------------

Private Sub Form_Load()
    Dim test As New CDO.Message
    test.To = "him@mycompany.com"
    test.From = "me@mycompany.com"
    test.Subject = "Test Message"
   
   
    test.AddRelatedBodyPart "U:\Inetpub\wwwroot\~resources\tech-newsletter-head.jpg", "tech-newsletter-head.jpg", cdoRefTypeId
    test.AddRelatedBodyPart "U:\Inetpub\wwwroot\~resources\regions.jpg", "regions.jpg", cdoRefTypeId
    test.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    'Name or IP of remote SMTP server
    test.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "my.mail.server"
    'Server port
    test.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    test.Configuration.Fields.Update
   
    'Read HTML file for message body
    Open "u:\inetpub\wwwroot\temp3.htm" For Input As #1
    While Not EOF(1)
        Line Input #1, strHTMLT
        strHTML = strHTML & strHTMLT
    Wend
    Close #1
    test.HTMLBody = strHTML
   
    test.Send
    Set test = Nothing
 
End Sub
LVL 3
jwinneyAsked:
Who is Participating?
 
wnrossCommented:
Possibly, you can also use the technique to place a raw header, which in this case is called Expiry-Date

 test.Fields.Item("urn:schemas:mailheader:Expiry-Date") = "Sat, 26 Apr 2006 00:00:00 -0800"
 test.Fields.Update

note that

 test.Configuration.Fields.Item("urn:schemas:mailheader:Expiry-Date") = "Sat, 26 Apr 2006 00:00:00 -0800"

Won't work, since that Field object is simply used to configure transportation.

Hmm, I forgot to add the second Update method, you need to use Update() on both the configuration
Field object AND the message headers Field object

CHeers,
-Bill
0
 
bruintjeCommented:
Hello jwinney,

you could look at this article
source: http://support.microsoft.com/?kbid=195381
----------
'This message will expire at 6:00 PM on October 23, 1998
test.Configuration.Fields.Item(CdoPR_EXPIRY_TIME) = "1998/10/23 18:00:00"
----------

hope this helps a bit
bruintje
0
 
jwinneyAuthor Commented:
Hi,

I've tried that. This article refers to using Outlook itself by creating a MAPI session, not SMTP

Cheers

John
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
wnrossCommented:
Expiry is a standard header, so just add it to the Message object:

    test.To = "him@mycompany.com"
    test.From = "me@mycompany.com"
    test.Subject = "Test Message"
    test.Fields.Item("urn:schemas:mailheader:expiry") = "Sat, 26 Apr 2006 00:00:00 -0800"

A list of headers can be found at:
http://msdn.microsoft.com/library/en-us/cdosys/html/dbca4fb9-afcb-4716-9e0c-4bff45ca0b60.asp

Cheers,
-Bill
0
 
jwinneyAuthor Commented:
Hi wnross,

Thanks, I tried that after I'd posted this question. It didn't appear to work for me. Have you tred it? It seems to be the correct way of doing it. Wondering if my SMTP server is doing something....

Cheers

John
0
 
wnrossCommented:
If you put expiry into the configuration object or forgot to use Update, your attempt would have been discarded
0
 
jwinneyAuthor Commented:
Excellent !!

This worked:


    test.Fields.Item("urn:schemas:mailheader:Expiry-Date") = "Wed, 26 Apr 2006 15:40:00 +0100"
    test.Fields.Update

Thanks

John
0
 
wnrossCommented:
No problem, glad to help

-Bill
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.