Straightforward direct-delivery incoming mail

I’ve been able to set up multiple domains but they are all keyed to the same API key and it seems to be working just fine for now. What kind of potential problems are there? Just so that my notes are up to date before opening an issue in future?

I don’t understand. What did you do to allow your Users to send mails from mail providers enforcing TLS?

I set up POP3 Polling in addition to manual polling

Okay. Thanks.

But, isn’t there a solution without pop3 polling?

At this Point, I can’t think of any but You’re always welcome to fork the current repo and modify it to work with TLS since what I assume is the Postfix running there is standard.

1 Like

I think it should be possible to modify the mail-receiver.yml to use the let’s encrypt certs but I’ve not spent any time figuring it out. If it’s worth money to someone it could happen sooner.


What would be a frame for time and money for this?

I honestly don’t know. You can contact and/or post on #marketplace with your budget.

Hello, I am relatively new to Discourse but working through this setup. Everything SEEMS to be working but for some reason i get this error that the messages are looping back to the same server and the mail is being removed

<22>Mar 15 15:59:49 postfix/smtpd[126]: connect from unknown[]

<20>Mar 15 15:59:49 postfix/smtp[125]: warning: host[]:25 replied to HELO/EHLO with my own hostname discourse-mail-receiver.localdomain

<22>Mar 15 15:59:49 postfix/smtp[125]: 42A8A243665: to=<>,[]:25, delay=1.3, delays=1.2/0.01/0.12/0, dsn=5.4.6, status=bounced (mail for loops back to myself)

<22>Mar 15 15:59:49 postfix/smtpd[126]: disconnect from unknown[] ehlo=1 quit=1 commands=2

<22>Mar 15 15:59:49 postfix/cleanup[124]: 6C89B24366D: message-id=<20190315155949.6C89B24366D@discourse-mail-receiver.localdomain>

<22>Mar 15 15:59:49 postfix/qmgr[79]: 6C89B24366D: from=<>, size=4968, nrcpt=1 (queue active)

<22>Mar 15 15:59:49 postfix/bounce[127]: 42A8A243665: sender non-delivery notification: 6C89B24366D

<22>Mar 15 15:59:49 postfix/qmgr[79]: 42A8A243665: removed

My site name is “”. When i created the MX record i had to use “” because I have a CNAME of community already setup

Any thoughts would be appreciated…thanks in advance!

You’ll need to create the MX record for your domain. You can either not use a CNAME for or add an MX record for Another more complicated solution would be to use some other domain for the incoming mail receiver; you could configure the mail receiver to use and configure discourse to send from that address (which would likely require you to reconfigure whatever is sending mail to allow using that domain name).

1 Like

You can’t have a CNAME and an MX record at the same time.
You need to read this:


Thanks for the quick reqly @pfaffman.
I’m attempting to take the less complicated route :slightly_smiling_face:

I added an MX record for

I now get “Relay Access Denied” so I THINK that’s progress…still googling!

Hey @hexa,
I’m getting the exact same time out error that you posted about…

Were you able to figure out how to fix this?

  Failed to POST the e-mail to execution expired (Net::OpenTimeout)`

  /usr/local/lib/ruby/2.3.0/net/http.rb:880:in `open'
  /usr/local/lib/ruby/2.3.0/net/http.rb:880:in `block in connect'
  /usr/local/lib/ruby/2.3.0/timeout.rb:101:in `timeout'
  /usr/local/lib/ruby/2.3.0/net/http.rb:878:in `connect'
  /usr/local/lib/ruby/2.3.0/net/http.rb:863:in `do_start'
  /usr/local/lib/ruby/2.3.0/net/http.rb:852:in `start'
  /usr/local/lib/ruby/2.3.0/net/http.rb:1398:in `request'

The IP that it points to needs to be the REAL IP of the server, not some other server that’s ferrying data back to it. If isn’t really the actual server where the mail receiver that’s the problem.


Thanks…Yes, its pointing to the REAL IP of the server…I’m good there.
But now its timing out execution expired (Net::OpenTimeout), similar to what @hexa posted earlier in the thread…I didn’t see how it was resolved though

Hey, @JoshuaJoma. I’ve got a configuration that modifies the mail receiver to use the let’s encrypt certs that app.yml generates and maintains. It’s now standard on my installs. If you already have a working Standard Install, I’ll install the mail receiver for $150–Incoming Mail Server – Literate Computing, LLC.

Hey, @mpalmer. Would you be interested in a PR? It’s just opening up ports 465 & 587, adding the let’s encrypt volume, and adding some POSTCONF_smtpd_XXX lines to tell postgres to use the certs.

I think it’s mostly safe to assume (or enforce) that anyone who has the wherewithal to install the mail receiver also can enable let’s encrypt, though adding a mail-receiver-no-certs template might make sense.


I’ve done everything in the book. detects dns (shows DNS Record Published DNS Record found ) . but no mail reaches recieved /bounced folder. What did I do wrong?

Where to do it???

It’s hard to know what you did wrong without knowing anything about what you did right? You claim to have done “everything in the book”, but what book did you use?

So you installed the incoming mail server?

Can you telnet to port 25 from localhost? (that would indicate that it’s probably working)

Can you telnet to it remotely? If you can connect from localhost but cannot remotely, then something is blocking incoming port 25. If that’s the case, then you can start to troubleshoot whether it’s a firewall managed by the operating system or whatever your hosting environment it.

What does ./launcher logs mail-receiver say?

Can you share your actual host name so that we could check those things?


Thanks I read the topic and it turned out that I need to enable port 25 on the server and change the address in the mail-receiver settings from http to https. And now it works (perhaps…).

Nevertheless I don’t know if it works well. Here I created a separate topic with my question —>>>