Search for new messages
This sample connects to IMAP4 server, logs in e-mail account, selects "Inbox" folder and downloads new messages.
Unlike POP3, IMAP4 protocol remembers which messages have been already downloaded. This makes it easy to determine which messages are new.
Note: If e-mail account is accessed by multiple mail agents, IMAP4's new messages detection won't work: messages not yet received by one mail agent can be already received (and marked as old on the server) by another mail agent. In other words, when the same message can be new for one mail agent and old for another, your app should not rely on IMAP4 new messages detection. In this case, you can use the same approach as for POP3 protocol (see Search for new messages POP3 sample).
Dim objIMAP4, objMsg, arrNew, I
' Create IMAP4 object
Set objIMAP4 = CreateObject("MailBee.IMAP4")
' Enable logging IMAP4 session into a file
objIMAP4.EnableLogging = True
objIMAP4.LogFilePath = "C:\imap4_log.txt"
' Unlock IMAP4 object
objIMAP4.LicenseKey = "put your license key here"
' Set IMAP4 server name
objIMAP4.ServerName = "mail.server.com"
' Set user credentials
objIMAP4.UserName = "username"
objIMAP4.Password = "password"
' Connect to the server and
' log in email account
If objIMAP4.Connect Then
' Select Inbox folder
If objIMAP4.SelectMailbox("Inbox") Then
' Get Unique-IDs of new messages
arrNew = objIMAP4.Search(True, "new")
If Not objIMAP4.IsError Then
' Loop through new messages
For I = LBound(arrNew) To UBound(arrNew)
' Completely retrieve message by its Unique-ID
Set objMsg = objIMAP4.RetrieveSingleMessage(arrNew(I), True)
If Not objIMAP4.IsError Then
' Display message body
MsgBox objMsg.BodyText
Else
' Display error information
MsgBox "Error #" & objIMAP4.ErrCode & ", " & _
objIMAP4.ErrDesc
End If
Next
Else
' Display error information
MsgBox "Error #" & objIMAP4.ErrCode & ", " & _
objIMAP4.ErrDesc
End If
Else
' Display error information
MsgBox "Error #" & objIMAP4.ErrCode
MsgBox "Server response: " & objIMAP4.ServerResponse
End If
' Close the connection
objIMAP4.Disconnect
Else
' Display error information
MsgBox "Error #" & objIMAP4.ErrCode
MsgBox "Server response: " & objIMAP4.ServerResponse
End If
<%
Dim objIMAP4, objMsg, arrNew, I
' Create IMAP4 object
Set objIMAP4 = Server.CreateObject("MailBee.IMAP4")
' Enable logging IMAP4 session into a file
objIMAP4.EnableLogging = True
objIMAP4.LogFilePath = "C:\imap4_log.txt"
' Unlock IMAP4 object
objIMAP4.LicenseKey = "put your license key here"
' Set IMAP4 server name
objIMAP4.ServerName = "mail.server.com"
' Set user credentials
objIMAP4.UserName = "username"
objIMAP4.Password = "password"
' Connect to the server and
' log in email account
If objIMAP4.Connect Then
' Select Inbox folder
If objIMAP4.SelectMailbox("Inbox") Then
' Get Unique-IDs of new messages
arrNew = objIMAP4.Search(True, "new")
If Not objIMAP4.IsError Then
' Loop through new messages
For I = LBound(arrNew) To UBound(arrNew)
' Completely retrieve a message by its Unique-ID
Set objMsg = objIMAP4.RetrieveSingleMessage(arrNew(I), True)
If Not objIMAP4.IsError Then
' Display message body
Response.Write objMsg.BodyText & "<br>"
Else
' Display error information
Response.Write "Error #" & objIMAP4.ErrCode & ", " & _
objIMAP4.ErrDesc & "<br>"
End If
Next
Else
' Display error information
Response.Write "Error #" & objIMAP4.ErrCode & ", " & _
objIMAP4.ErrDesc
End If
Else
' Display error information
Response.Write "Error #" & objIMAP4.ErrCode & "<br>"
Response.Write "Server response: " & objIMAP4.ServerResponse
End If
' Close the connection
objIMAP4.Disconnect
Else
' Display error information
Response.Write "Error #" & objIMAP4.ErrCode & "<br>"
Response.Write "Server response: " & objIMAP4.ServerResponse
End If
%>
See Also:
Search Method