[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 715
  • Last Modified:

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
0
jwinney
Asked:
jwinney
  • 4
  • 3
1 Solution
 
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
 
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
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
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:
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
 
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

Featured Post

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now