Setting up email for your microIsv
This is one of the simplest things you need to do for your microIsv, but even this one has a few decisions and a few pitfalls. It's also Step 9 of 25 steps for building a microISV.
I've recently gone through the process of getting email in place to support NimbleText, so I thought I'd document it while it's still fresh in the old mind.
The first thing you need to work out is how you intend to use email in your microIsv, and from this you'll determine what accounts you need.
For example, here's where I'm using it, or planning to use it:
- When licenses go out
- When support requests come in
potentially for 'mass mailouts'
I ruled out 'mass mailouts' but only for now.
To handle these simple cases I could have a whole bunch of addresses such as 'licensing', 'sales', 'support', 'marketing', 'leon', 'ceo' and so on. But that's exactly the sort of over-engineering you need to avoid. In a microIsv you need to be thoroughly minimalist in everything you do.
The simplest thing that can possibly work is to have exactly one account, 'support', so that's what I've done with NimbleText.
Step 1: Create the account.
I'm hosting my sites at Arvixe these days, so in their control panel I set up a new email account.
I also tell it to forward to my gmail account (this won't be enough to get the forwarding working, we need to tell gmail as well)
I also told it to act as a catch-all address. So if someone writes to 'unknown@...' etc then I should still get it.
Step 2: Set up 'send mail as' at gmail.
In gmail you need to configure another account you can send email from.
I seem to 5 or 6 of these in use by now.
Within gmail, you go into settings in the top right hand corner. Choose the tab called called "Accounts and import". In the 'Send mail as' section, click the button to "Send mail from another address."
Enter sensible values, and pick the defaults. To complete this process, gmail sends an email to your new account, that contains a confirmation code you need to enter back in gmail.
Step 3: Create a filter at gmail.
You want any new support requests, etc, to be highlighted, and grouped together.
So create a filter in gmail that applies a new label, named after your microIsv. Tip: for any label I really care about, such as this one, I pre-pend the name with an underscore so it is alphabetically near the top of my labels. (I have a lot of labels). In this case the label is "_NimbleText".
I also tell the filter to apply a star to all emails from my support address. I can leave the star in place until a support request has been followed up sufficiently. I treat anything with a 'star' as an open case.
(Yes, this is a poor man's bug tracking system. The startup package from fogBugz is free and powerful. I assume Atlassian's Jira has a similar deal.)
Step 4: Color the label.
Once the filter is created and the label is created we can then set a color for the filter, so that any new support messages stand out in the inbox.
Step 5: Listing email address online
Now you need to list the email address in a couple of places. I've put it on the about page, the help page and the purchase page.
I was *particularly* pleased with the idea of putting the email address on the purchase page, as I think it's just the kind of reassurance which might help people make the leap of faith required to put your money in the hands of a stranger.
Step 6: List email address in your application
Stupid me hasn't done this yet.
It's a good idea to make your email address available from the help menu of your application -- perhaps two links, one for 'add a suggestion ;-)' and one for 'report a report :-('.
Also, when the app crashes *hard*, your real clever applications catch the otherwise unhandled exception, and encourage the user to send them to the support address.
A more sophisticated approach is to send the crash reports over http. If you're integrated with Fogbugz, as we are with TimeSnapper, then you can use their 'bugzscout' dll to deliver crash reports, with customer permission. (also, here's an interesting codeproject article from 2004 on handling exceptions by some weird unknown guy called Wumpus1)
Step 7: When sending, pick correct 'from' address
This is pretty self-explanatory. If you're sending an email in your capacity as CEO of your new microIsv, pick the relevant email address in the 'from' drop-down list, rather than your regular email address.
Step 8: Sending email programmatically.
At times you'll need to send one or two emails programatically. For example when a purchase occurs and you want to send out a license.
You don't want those emails to be categorised as spam. There's a bunch of things to keep in mind, head to stackoverflow to read more.
When performing mass mailouts it becomes much more difficult to avoid being classified as spam (even if you're not sending spam) so when I've done that in the past I've outsourced it to a specialist company. I've used Campaign Monitor and was seriously impressed by the whole experience. I'd recommend you use them for any bulk promotional emails you need to send. (No, I'm not affiliated with them.)
Wrap it up already
That's it. That's every detail I can think of for getting email up and running to suit the tiniest of enterprises.
Comments, suggestions, feedback, bring it.