I worked on the auto email program a bit at lunch. I cleaned up my code by moving specific operations that take more than two or three lines of code into functions. This makes the main loop easier to read since the function names are a bit like documentation for what they do. Comments like “// get the title portion of the email address” are not necessary when the function that is then called is “GetEmailAddressTitle()”.

I changed the code to log a bit of the outgoing message when a response is sent. The log is only hard to read when someone requests a broadcast message since they get a response to their request and the log also shows an entry for the “send to everyone” event.

I now support:

  • Address registration done remotely by the sender.
  • Un-registration done remotely by the sender.
  • Broadcast messages sent to all registered users by sending a broadcast request remotely.
  • Automatic responses to incoming messaged that are based on the destination address and keyword in the message body or in the subject line. Wildcards ? and * are supported in the configuration file to detect partial matching of keywords.
  • I’m planning on adding a mechanism where the complete log file can be requested remotely and it can them be sent to an email address specified with the request. Although I can’t get email on my phone, most smart phones can handle it fine. This will allow me to do some diagnostic work remotely if needed.

    I just got an assertion failure from my program. It stopped being able to connect to the POP3 server. I wonder what I’m doing wrong and why the heck and I getting an assertion failure?!

    It was a simple bug where I exit from the mail checking function without closing the connection. I end up with lots of connections until things break. I think it’s all working now.