Displaying HTML-formatted messages (Part 3)
Removing temporary files after use
Summary: Shows how to remove
temporarily saved embedded objects.
Tutorial map:
Part 1 - Quickly display e-mail with
inline pictures
Part 2 - Using temporary filenames for
embedded objects
Part 3 - Removing temporary files after use
Part 4 - Advanced topics
When the user has finished viewing the message containing embedded objects,
it's a time to delete all temporary files because they are no longer needed.
When GetBodyWithEmbeddedObjectsEx method of the Message object
is called and embedded objects are present in the message, this Message
object remembers the path to the saved temporary files. These files are stored
in the special directory created by GetBodyWithEmbeddedObjectsEx method
in the TempDirectoryPath directory. So, each message holds its temporary
files in its own directory (called message directory), and all these directories
are located in TempDirectoryPath directory.
Once GetBodyWithEmbeddedObjectsEx method was called, you may get the
path to the message directory by obtaining value returned by GetMessageDirectoryPath
method. Store this value in the Session, you will need it later.
Some time later the user clicks "Logout" button (or the Session expires
due the user's inactivity), and clean-up script is executed. To delete all temporary
data, this script must delete the message directory including all its contents.
To do this, call RemoveMessageDirectory method of the Message
object, passing the message directory path stored in the Session as a value
of MessageDirectoryPath parameter.
Note: Many (even most) emails do not contain embedded
objects, and the message directory is not created for such messages. GetMessageDirectoryPath
method returns empty string in this case. However, it's safe to call RemoveMessageDirectory
method passing empty string as a parameter. It will just do nothing.
The sample below adds the message directory path storing to the sample from
Part 2. The path is stored
in the session variable named "strMessageDir".
Code example:
' HTML message viewer
Dim objPOP3, objMsg
Set objPOP3 = Server.CreateObject("MailBee.POP3")
objPOP3.LicenseKey = "put your license key here"
If objPOP3.Connect("mail.server.com", 110, "user", "pass") Then
If objPOP3.MessageCount > 0 Then
Set objMsg = objPOP3.RetrieveSingleMessage(1)
Response.Write _
objMsg.GetBodyWithEmbeddedObjectsEx("c:\test_project\files", _
"http://www.server.com/test/download.asp?", , 3)
Session("strMessageDir") = objMsg.GetTemporaryDirectoryPath
End If
objPOP3.Disconnect
Else
Response.Write objPOP3.ErrDesc
End If
Sample code below is a script that should be
called whenever clean-up takes place (logout and session expiration are common
examples).
The script assumes the message directory path is stored in "strMessageDir"
session variable.
Code example:
' Temporary files remover
Dim objMsg
Set objMsg = Server.CreateObject("MailBee.Message")
objMsg.RemoveMessageDirectory Session("strMessageDir")
See Also:
Part
4 (Advanced topics)
GetBodyWithEmbeddedObjectsEx
Method
RemoveMessageDirectory
Method
GetMessageDirectoryPath
Method
Copyright © 2002-2024, AfterLogic Corporation. All rights reserved.