wake me I'm dreaming
Monday, April 26 2010
Today marked the first live use of my PHP-based emailing system, the one which fires off short burst of email after consulting data on two different database servers (one running MySQL, the other Microsoft SQL). I'd tested it over the weekend and it seemed to work; it had sent me or David (of Penny and David, the guy whose website it supports) scads of email when I pulled the trigger. So it seemed like it was ready to go live. The trigger was pulled and it began to do its thing. But after about 500 emails had been sent, it started becoming clear that something was amiss. My new mailer was designed to send out emails containing links tagged in such a way that anyone clicking on them would send information that would record information about the user, the item being clicked on, the time, and the mailing itself. But no such data was coming in. This was also reflected in older tracking systems that predated my involvement with the site. They all pointed to almost no user interactivity. Clearly the mails were not reaching the users. But why? At one point I inserted a line of code that forked a stream of the emails to my personal email account. And sure enough, I immediately had five or ten copies of the mailing. They were being sent out, but they were being lost in the ether. But why was this happening? There was no logical reason. Indeed, it was as if I was experiencing the kind of absurd logic I normally only experience in dreams. "Wait a minute, could this be a dream?" I occasionally have those thoughts in dreams but never in reality. Still, the absurdity of this observed behavior made it seem almost like a problem worth waiting to wake up from.
I'd scheduled with Deborah a visit so that I could fix that board that had broken on her house's floating dock (which rises and falls with the tides in Esopus Creek near where it joins the Hudson Fjord). As you'll recall, several days ago we'd had an evening picnic on that dock, which I'd untied from the PVC pipes that had allowed it to slide up and down a set of galvanized pipes. We'd sailed out a short distance into the Esopus and had a grand time, and then I'd tied it back up again. But I'd tied it wrong, so when the tides later went out, the dock got hung up and the board that is tied to the PVC pipes had broken off. The landlord had discovered this, and so I'd volunteered (or been volunteered) to fix it.
It was still a bit rainy today, but I wanted to get the job over with. So I picked up an eight foot piece of two by six treated lumber, some galvanized carriage bolts, and a cheap coping saw from Home Depot and then drove up to Saugerties (with Sally and Eleanor in the back). As I drove, I ate potato chips and drank one of those new-fangled taurine-containing energy drinks. I didn't used to like potato chips, but Ray's addiction to Pringles has recently rubbed-off on me. (Though I generally buy potato chips in bags, not cylinders.)
Though the board being replaced was actually kind of complicated (it had two special notches, a rounded end, and a piece of lashing hardware), it didn't take me long to replicate it on the new board. I used the old board as a template and then cut and drilled where needed. The rain had slacked off a bit, so I felt safe using power tools. Still, it was a little unnerving standing on the wet surface of a floating dock in the rain cutting out the splintered remains of a board using a handsaw powered by a 120 volt extension cord.
Meanwhile Deborah was experiencing a problem with her Macintosh, which had decided to wreak havoc with an archive of photographic files.
Back home, I did some more testing of the broken mailer that had caused me to wonder if I might be dreaming. This time I wrote a simple one-line test mailer in PHP and tried sending emails to a mix of addresses over which I have control. One was hosted by Verizon, another was hosted by Yahoo.com, a third was hosted by 1And1.com, and then there was the fourth address, the one hosted by Godaddy.com that I usually use. Oddly, the simple script was able to send to all those addresses. But then I switched to the more complicated email address format used by my tool, which is this: Firstname Lastname <EmailAddress.com>. After this change, the mails only managed to make it to the email address hosted by Godaddy.com. Hmm, this was looking like a pattern. Then I remembered that David is also using a Godaddy email address. We'd tested my mailer and it had seemed to work fine, but we'd only tested using recipients with Godaddy email addresses. It seemed the mailer worked fine when sending to this more complicated version of an email address, but only if the recipient had an email account hosted by Godaddy! Interestingly, the simple PHP script had no trouble sending email to all of the accounts (except for the mostly-useless Verizon account) just so long as the "to" address was given in the simpler <EmailAddress.com> format. (Oddly, this problem only manifested with the PHP mailer; the old Cold Fusion mailer running on the same web server had experienced no problems sending emails to users at all sorts of different providers using "to" addresses of the form Firstname Lastname <EmailAddress.com>.) The arbitrariness of this problem was so mind-blowing absurd that all I could do was chuckle. It was as if I had painted my car blue and now, because of that, it wouldn't start. I probably wasted a good six hours on this stupid problem today. And I don't even know who to blame, though I suspect Godaddy is more culpable than the good folks who develop PHP.
For linking purposes this article's URL is:feedback
previous | next