Auto ResponderJanuary 12th, 2012 (updated September 24th, 2014)
A majority of the architecture of the Auto Responder is shown in the following image.
Auto Responder Architecture
The Message Page
Another feature of the Auto Responder Windows service is the ability to accept a socket connection from another process on the same system. The local socket connection is used to get an email broadcast request from the web interface through a PHP script and then use the Auto Responder service to send the message to all known email addresses. The local connection port is also used for the SMS messaging described earlier. It is possible to see all messages in the log or those for a specific team or user. The user list is shown below. There are also notifications in the message log about errors and other system information such as when the service program starts or when one or more of the email connections fails.
The User Page
The XML file containing the automatic responses, server locations and ports, and some other information, can be edited on the configuration page. The data is obtained at the moment the page is displayed and AJAX is used to send the update request when the user clicks or touches the update button. The configuration page includes the user list that is updated whenever a user registers or un-registers.
The Configuration Page
Editing the XML data for these configuration items is not the most robust mechanism for maintaining these things but is acceptable for an administration page not seen by any typical user. A fancier system is not needed for these management tasks at this time.
The entire idea was based on the text messaging “feature” of a puzzle race I attended for the last three years in San Diego. A puzzle race is a race, similar to the Amazing Race on TV but with real puzzles to solve. The race I competed in, arranged by Outdoor Outreach and designed by Puzzling Things, required the use of cell phones or other text messaging equipment during the race. This added a certain amount of fun to the race while also allowing us to get almost immediate feedback on our results. Some puzzles were answered using an answer sheet and there was no way to be sure you were right until scoring at the end of the race. Most puzzles involved sending a text message and the acting on the answer. I do not know what technology was used in that race and I developed my application from scratch with only the basic concept of answering question as a starting point. The race that I am trying to develop is complex and is a very different topic that I hope to cover in detail once the race is done.