Google advises using SendGrid, Mailgun, or Mailjet. However, since I didn’t see any Mailgun plugin for Discourse (two repo on GitHub indeed, but one hasn’t been updated since 2015, and the other even breaks the rebuild of Discourse), I formerly use SMTP to send emails via Mailgun, but this way has been blocked by Google. So my site’s email system is totally breaking down.
You don’t need a plugin to use mailgun with discourse. However, it is also very clear that if all 3 ports are blocked then you won’t be able to use mailgun.
You can try going with elasticemail they support port 2525 which is very rare to be blocked.
hmmmmm…I think using their API is the “native” way to use Mailgun and SMTP is just for compatibility. I don’t know if I’m right. But I think it may be feasible to use another server as a relay via an SSH tunnel. I have no idea how to actually do this. But I noticed there are some people doing this way, though they are not for Discourse. Theoretically, it should work.
Discourse does not support sending through API and this has been discussed earlier multiple times. This won’t be implemented unless there is a single, open source standard to send emails via API.
Individual developers may make plug in for discourse but it won’t really help in any way as email is required at the time of first run in order for admin to recieve the activation email.
Though it may be possible to install a plugin at that phase, it is neither recommended nor is documented anywhere by discourse in their official install guides.
I highly doubt someone is going to work on
A. Creating a plugin
B. Writing a guide to compile discourse with their plugin
C. Maintain a plugin for discourse for as long as discourse exists and the API standard doesn’t.
That too Just to add a functionality that is product specific and isn’t reliable.
One solution can be to run something like a local smtp2api script that takes all details from the SMTP and then sends it via API. That still would require a lot of effort and time.
If you use port 2525 as @itsbhanusharma recommended it will work with all mail delivery services that I have tested. I have done dozens of installs this way.
Another solution would be to develop a plugin that delivers mail through the API. Thus far, no one has seen the need to do that. If you have a budget of $1000 or more, you could post in marketplace and see if anyone is interested in developing one.