1 | 2 | 3 »

New Features: Upload to Amazon S3, Google Docs, and Custom Email Address Data


You now have the option to send email attachments to Google Docs, Amazon Web Services' S3.  This can be a good way to archive large email attachments and have the reference information sent to your script.  

You can also now include custom data for your email addresses like so:
mail+customdata@youraccount.mailnuggets.com




One Year of MailNuggets


It's been a little over a year since I began working on MailNuggets, and a little less than a year since the first paying customer.  MailNuggets is now cash-flow positive with customers spread across the United States, Australia, the UK and India.  Perhaps the most enjoyable thing about MailNuggets is having developers for clients.  Getting feedback, criticism, praise and payment from those in the development community is quite enjoyable and it's a kind of interaction I've missed as a solo developer for a long time.  

There have been some lessons learned about the usefulness of various parts of the MailNuggets tool as well.  Nearly 100% of customers use it only to POST email to remote scripts, even though MailNuggets is quite good at posting photos to blogs and Twitter.  Perhaps the proliferation of free photo-to-Twitter or photo-to-blog services make MailNuggets a non-intuitive choice.  But, fortunately I take some solace in the fact it works well for my own simple Twitter and blog posting needs. I also use MailNuggets to process several automated tasks from email alerts I receive.  Having complete control over these tasks is worth the time and cost of running MailNuggets.  The subscription fees, learning things like CakePHP, HTTP POST nuances and email anatomy have been the icing on the cake.  

Other valuable learning experiences include setting-up Google Checkout and Amazon Payments to handle subscriptions.  Both solutions stack-up quite nicely against PayPal's website payment pro options, and come with no monthly fees.  Of the two I prefer Amazon payments for its simplicity.  Google Checkout comes with more detailed insight into the billing process with an almost overwhelming amount of IPN (instant payment notification) information for each phase of every payment.  The drawback (depending on how you look at it) is that the checkout experience is handed off to a third party.  And, building a central billing system that works well with both payment options was perhaps one of the unforeseen challenges.

One of the bright spots of being a year old is that Google seems to have improved my search rank for queries relating to "Email to HTTP Post" which has helped a lot.  I've purchased some adwords as well, but these rarely get clicked.  Google Analytics does however offer some nice ways to track who signs-up for an account after clicking on different words.  

Going into the next year I look forward to getting more feature requests, and improving the service.  Just this week MailNuggets added a new POSTed value (message-id-hash) that allows users to verify email POST authenticity by md5 hashing the message-id with their API secret key.  More on that here: http://mailnuggets.com/pages/features/email_over_http_post




MailNuggets Global Traffic Distribution


One of the things that has really surprised me is how many MailNuggets users do not live in the United States. But, since MailNuggets relies mostly on search engine traffic and online word-of-mouth recommendations, it's conceivable that traffic and users could come from anywhere. Less than 50% of MailNuggets paying users are located in the United States. Below is a traffic heatmap showing a breakout by country. This is pulled from Google Analytics.





System Monitoring Set-up


Following the May 6th downtime I started investigating some monitoring options for the MailNuggets service along with some additional servers, and decided that rolling my own system was potentially the best option. The reason being is that I want fine control over uptime checking methods, for example, the number of pings to send initially, and then when packet loss occurs, and how to follow that up. I tracked down some pretty good tools for this, including:

PEAR's NET_ping http://pear.php.net/package/Net_Ping A nice class for pinging via PHP.

RoadKill Software's Custom SMS App for Android http://software.roadkill.com/CustomSMS/ Makes sure that the SMS from the monitoring script is different, extra loud and repeated every minute. Not free, but a fine use of $.99.

TextMagic's global SMS gateway. http://www.textmagic.com I needed this since my mobile phone number doesn't come with an email gateway. I bought $30 of credits that gets me about 200 SMS's to my phone. The credit appears to not expire, though I have set-up a heartbeat SMS so that an SMS is sent automatically every week to check that the service still works.

At the moment, I have monitoring script set-up on a single non-MailNuggets server, but have plans to replicate it on additional servers that check each other and failover.




May 6th, 2011 Downtime Post-mortem


MailNuggets relies on Linode for a couple key things: DNS, and most importantly VPS hosting.  I have been a Linode customer for over three years, and during that time the quality of their product and service has been mostly exceptional.  Prior to setting up the Linode that runs MailNuggets in the Fremont, California data center, a different Linode in their Trenton, New Jersey data center had one unexpected reboot over the course of three years.  While I am currently weighing moving out of the Fremont California datacenter, I can confidently say that Linode has a very good record elsewhere.

On May 6th 2011, their Fremont, California datacenter apparently lost power ( http://twitter.com/#!/linode/status/66448638410366977 ) and this brought down the MailNuggets service.  However, there was some additional downtime for the service after the site was back online since the some of the processes critical to MailNuggets failed to restart properly.  Measures have been taken to prevent this from happening again.  This includes:

- MySQL and Postfix have been added as start-up services via chkconfig so that they will automatically launch on reboot.
- A new status page at mailnuggets.com/pages/status displays the current state of critical mailnuggets server processes, and shares information on uptime, and system load.

Also, going forward I will be setting-up remote server monitoring and investigating moving the MailNuggets VPS to the Trenton, New Jersey facility.