I only just started using Docker, a nice little project that lets you package whole server systems as lightweight containers that can run isolated from the rest of the hardware. It has some warts, but overall it's pretty exciting technology.
Today I was thinking about email. Email is difficult. I don't know why, since it's one of the oldest technologies around. But setting up an email server such that it's easily configured and doesn't let spammers get away with murder is such an aggravating experience that it's often easier to pay someone else to host it for you.
The problem I've encountered is that I would like to use a service like Postmark or Sendgrid, but they explicitly prohibit non-transactional emails. This means that if you use their service to send email, then it must send one unique email to one person based on some user performing an action. They explicitly can't be used to send many of the same (or similar) emails to multiple recipients, which they classify as "bulk email".
My use case is that I would like to have a site that maintains membership within an organization. Within that organization, there are smaller groups. When an event is due to occur for that group, I would like to send a (mostly if not entirely identical) email to all of the members of the group. I suppose I could argue the case that these messages are entirely opt-in via the site, which is why these services won't send them, but rather than try to do that, it would be easier if I could configure my own email server and some code to do at least the API parts of what these services do.
Yes, I realize that I won't be getting everything that I would pay for with those services. For example, if I have deliverability issues, I'll have to figure them out myself. But realistically, my use case has maybe a hundred members, and if a couple of people have issues, it's not going to be a big hassle to work them out. The main problem is that I would need to install an email server.
I was thinking about this problem and my recent experimentation with Docker, and I thought that an MTA + SMTP + IMAP container might solve my problems. If such a thing existed, I could very easily run a single docker command to erect an email server on my host. The point of the server would be ease of configuration, so it would hopefully either use MySQL (external!) as a data/config store, or allow configuration files to be updated from outside the container somehow.
Sadly, I searched through the Docker Index, which lists publicly accessible docker containers, and there doesn't seem to be any such animal. I wonder what the interest would be in the creation of such a thing, and whether I could enlist a Courier/Postfix/Dovecot expert to help me out. If I could then build an externally-accessed web-based API that was like what Postmark or Sendgrid provides (maybe in node.js or Python?) on top of that Docker container, that would be perfect. I wonder how many people could make use of such a thing.