The account event handler is our way of contacting you to inform you of an event happening on your account. This event could be an incoming message, an error processing a message, a message event or a subscription event. Below is the code for an example account event handler.
dim message
dim notificationType
notificationType = Request.Form("NotificationType")
select case notificationType
case "MessageReceived"
HandleIncomingMessage()
case "MessageEvent"
HandleMessageEvent()
case "MessageError"
HandleMessageError()
case "SubscriptionEvent"
HandleSubscriptionEvent()
end select
sub HandleIncomingMessage
message = "<p>Received message" & vbCrLf
message = message & "<p>ID: " & Request.Form("id") & vbCrLf
message = message & "<p>Originator: " & Request.Form("originator") & vbCrLf
message = message & "<p>Recipient: " & Request.Form("recipient") & vbCrLf
message = message & "<p>Body: " & Request.Form("body") & vbCrLf
message = message & "<p>Type: " & Request.Form("type") & vbCrLf
message = message & "<p>Received At: " & Request.Form("receivedAt") & vbCrLf
WriteToFile message
end sub
sub HandleMessageEvent()
message = "<p>Received message event" & vbCrLf
message = message & "<p>ID: " & Request.Form("id") & vbCrLf
message = message & "<p>Event Type: " & Request.Form("eventType") & vbCrLf
message = message & "<p>Occurred At: " & Request.Form("occurredAt") & vbCrLf
WriteToFile message
end sub
sub HandleMessageError()
message = "<p>Received message error" & vbCrLf
message = message & "<p>ID: " & Request.Form("id") & vbCrLf
message = message & "<p>Error Type: " & Request.Form("errorType") & vbCrLf
message = message & "<p>Occurred At: " & Request.Form("occurredAt") & vbCrLf
message = message & "<p>Detail: " & Request.Form("detail") & vbCrLf
WriteToFile message
end sub
sub HandleSubscriptionEvent()
message = "<p>Received subscription event" & vbCrLf
message = message & "<p>Mobile: " & Request.Form("mobileNumber") & vbCrLf
message = message & "<p>Contact ID: " & Request.Form("contactID") & vbCrLf
message = message & "<p>Event Type: " & Request.Form("eventType") & vbCrLf
message = message & "<p>Occurred At: " & Request.Form("occurredAt") & vbCrLf
WriteToFile message
end sub
sub WriteToFile(message)
'Create a file system object and us it to create a text file
dim fileSystem
dim textFile
set fileSystem = server.createobject("Scripting.FileSystemObject")
set textFile = fileSystem.OpenTextFile("c:\esendex\temp.txt", 8, True)
'Write to the text file and close it
textFile.Write message
textFile.Write vbCrLf
textFile.Close
set textFile = nothing
set fileSystem = nothing
end sub
This can really be split up into 5 sections, first off is the switch case to work out which type of event has been received and call the appropriate sub.
dim message
dim notificationType
notificationType = Request.Form("NotificationType")
select case notificationType
case "MessageReceived"
HandleIncomingMessage()
case "MessageEvent"
HandleMessageEvent()
case "MessageError"
HandleMessageError()
case "SubscriptionEvent"
HandleSubscriptionEvent()
end select
Then there is the code for each type of notification. HandleIncomingMessage is self explanatory, someone has sent a message into your account and this is a copy of the message along with some details. See Recieve Text Message for a breakdown of the contents of this message.
All of the examples here simply break down the events properties into a string which is then written to a text file for demonstration purposes, in a live system it is likely that you will want to store the message in something a little more robust like a database.
sub HandleIncomingMessage
message = "<p>Received message" & vbCrLf
message = message & "<p>ID: " & Request.Form("id") & vbCrLf
message = message & "<p>Originator: " & Request.Form("originator") & vbCrLf
message = message & "<p>Recipient: " & Request.Form("recipient") & vbCrLf
message = message & "<p>Body: " & Request.Form("body") & vbCrLf
message = message & "<p>Type: " & Request.Form("type") & vbCrLf
message = message & "<p>Received At: " & Request.Form("receivedAt") & vbCrLf
WriteToFile message
end sub
The next type of event is the MessageEvent. Message events are sent to you when we receive delivery receipts for your sent messages.
sub HandleMessageEvent()
message = "<p>Received message event" & vbCrLf
message = message & "<p>ID: " & Request.Form("id") & vbCrLf
message = message & "<p>Event Type: " & Request.Form("eventType") & vbCrLf
message = message & "<p>Occurred At: " & Request.Form("occurredAt") & vbCrLf
WriteToFile message
end sub
Then there is the MessageError event. This event will be raised when there was a problem sending a message out, the error will be described in the details section of the event. The ID is the unique identifier of the message that had the problem, this will allow you to track which message it was if you store your messages in your own system using our unique identifiers and it will also be helpful if you have to raise a support call with us. sub HandleSubscriptionEvent()
message = Received subscription event" & vbCrLf
message = message & Mobile: " & Request.Form("mobileNumber") & vbCrLf
message = message & Contact ID: " & Request.Form("contactID") & vbCrLf
message = message & Event Type: " & Request.Form("eventType") & vbCrLf
message = message & Occurred At: " & Request.Form("occurredAt") & vbCrLf
WriteToFile message
end sub
Finally there is the SubscriptionEvent. When a subscription event occurs there will also be a MessageReceived event sent to you separately with the details of the message that triggered the subscription event. For information on how the subscription event is broken down see Premium Functionality.
sub HandleSubscriptionEvent()
message = "<p>Received subscription event" & vbCrLf
message = message & "<p>Mobile: " & Request.Form("mobileNumber") & vbCrLf
message = message & "<p>Contact ID: " & Request.Form("contactID") & vbCrLf
message = message & "<p>Event Type: " & Request.Form("eventType") & vbCrLf
message = message & "<p>Occurred At: " & Request.Form("occurredAt") & vbCrLf
WriteToFile message
end sub