Process Bounced Email in IMAP
Reads an IMAP mailbox and determines which emails are bounces.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
set imap = Server.CreateObject("Chilkat_9_5_0.Imap")
set bounce = Server.CreateObject("Chilkat_9_5_0.Bounce")
' Anything unlocks the component and begins a fully-functional 30-day trial.
success = imap.UnlockComponent("Anything for 30-day trial")
If (success <> 1) Then
Response.Write imap.LastErrorText & "<br>"
End If
success = bounce.UnlockComponent("Anything for 30-day trial")
If (success <> 1) Then
Response.Write bounce.LastErrorText & "<br>"
End If
' Connect to an IMAP server.
success = imap.Connect("mail.chilkatsoft.com")
If (success <> 1) Then
Response.Write imap.LastErrorText & "<br>"
End If
' Login
success = imap.Login("admin@chilkatsoft.com","*myPassword5*")
If (success <> 1) Then
Response.Write imap.LastErrorText & "<br>"
End If
' Select an IMAP mailbox
success = imap.SelectMailbox("INBOX.bounceSamples")
If (success <> 1) Then
Response.Write imap.LastErrorText & "<br>"
End If
' We can choose to fetch UIDs or sequence numbers.
fetchUids = 1
' Get the message IDs of all the emails in the mailbox
Set messageSet = imap.Search("ALL",fetchUids)
If (messageSet Is Nothing ) Then
Response.Write imap.LastErrorText & "<br>"
End If
' Fetch the emails into a bundle object:
Set bundle = imap.FetchBundle(messageSet)
If (bundle Is Nothing ) Then
Response.Write imap.LastErrorText & "<br>"
End If
' Loop over the bundle and display the FROM and SUBJECT of each.
For i = 0 To bundle.MessageCount - 1
Set email = bundle.GetEmail(i)
bounce.ExamineMail email
Response.Write Server.HTMLEncode( "Subject: " _
& email.Subject) & "<br>"
Response.Write Server.HTMLEncode( "Bounce Type = " _
& bounce.BounceType & ", email address = " _
& bounce.BounceAddress) & "<br>"
Next
' Disconnect from the IMAP server.
imap.Disconnect
%>
</body>
</html>
|