Transactional Email Service (Open Source)

Hi, I’ve seen that everyone suggests dedicated email services. Do any of you use or have tried open source alternatives? For example, postal or cuttlefish.

Certainly, using your own server at least to handle outgoing emails would bring enormous benefits. Services like SendGrid or Mailgun cost a lot, if you have a community that sends 1 million notifications or even more per month. I looked at the settings, a user can receive 250/300 email notifications a day very easily … if you have an active community, according to my calculations, you exceed at least one million or you get very close.

And anyway, how do you manage users who set up emails for each post or summaries every 30 minutes, but then maybe never log in anymore. Maybe there could be users who do this as a spite. Do you change the settings for those users who are not active for more than a few months?

Thanks in advance!

1 Like

Is this an actual problem that you’re having or one that you imagine? Dealing with human spammers is a problem for some communities, but not many.

Yes, if you’re sending a million emails a month then you might have a staff capable of running a web server. But doing so is not something supported here, that’s why those tools have their own communities. For most people, managing a mail server is a huge burden, which is why those services are recommended.

I honestly don’t understand why it should be difficult. there are these open source projects, created on purpose to manage everything in a simple way. It is difficult to manage even a forum, but Discourse is a cms created to make everything as simple as possible. Once Postal is installed and the DNS is configured well (the same with external services or you have problems in the same way), what problems could there be?

The only thing that should be done is to test if everything works with Discourse(for example, using it for incoming too and enabling reply-by-email etc.), if it is compatible. So I asked if anyone is using any of these open source projects.

I may be wrong, but I think that continuing to say “it’s too difficult to manage an email server and therefore you have to use paid services” is just an excuse. If one knows how to install Discourse, with a bit of effort, also install other cms, for example Postal.

Because spam. But give it a try. There are several packages that make the mechanics of setting things up pretty easy.

1 Like

I use mail-in-a-box and mail-receiver, it works (given a few postfix tweaks). It’s not that it’s difficult, but out of the scope of meta’s support. Plus I think maintaining ip and domain reputation is a hassle. When it’s not some random ISP that suddenly decides that you are 550 5.7.1 for their users, it’s google and…:face_with_symbols_over_mouth: . it seems it never ends.


My fear is only for when users maybe watch the categories and then receive emails for each new topic and posts. What if they are inactive? Do I keep sending 100 emails a day to each of them, every month? Like 3,000 emails also sent to members who are no longer active but who had previously activated this setting, maybe.

Is there a way to turn off the ability to watch categories? Give only the possibility of watching per topic? That would solve everything, I think.

the max emails per day per user parameter may also be useful (default to 100)


I’ve not used it, but would the suppress digest email after days be helpful too?


I came here because of postal. I find the questions relevant, and would like to propose the following.

I suppose there is a way, using the Discourse Data Explorer, to find who has been receiving email but did not login in over 6 months, and then send them an email asking them whether they’re still interested or do they just ignore email. If after, say, another week, there is no reply, stop sending them email, and eventually require account validation (i.e., suspend the account for inactivity.)

This would certainly save lots of CPU cycles and network bandwidth (and power and water…) not sending useless email over the Internet across all thousands of Discourse instances. :green_heart:

It pretty much works that way already. “suppress digest email after days” site setting.


Does that setting stop all emails, eg notifications of new posts in watched categories?

No. It does not. Lots of people use discourse only via email (which I find strange, but not everyone is just like me).

So if you do want all mail to stop for people who haven’t logged in for a period of time you’d need a plugin to do something like you suggest. Maybe you’d send them a login link with a special header as a warning and then deactivate the account.

I don’t think it would make a measurable difference in power. Unless a bunch of users are watching a busy category, it likely won’t make much difference even in mail costs. If that’s your goal, it’s likely not worth it.

1 Like

Perhaps you can try routing emails via Amazon SES?

Emails (at least this aspect of emails) seem to sort themselves out – it’s easy to unsubscribe, and when people move firms their email starts to bounce.

1 Like