Can send email from command-line but not Discourse

tl;dr: I can send mail via SMTP from my droplet, but not from Discourse running on my droplet.

This works:

./swaks --auth --server --au --ap [redacted] --to --h-Subject: "Hello from Discourse"--body 'This is coming via SMTP.'

resulting in an entry in my mailgun log and well, I also receive the email. When I send the authorization email from discourse, the logs appear to indicate success:

Started PUT "/finish-installation/resend-email" for at 2018-03-24 01:32:13 +0000
Processing by FinishInstallationController#resend_email as HTML
  Parameters: {"authenticity_token"=>[redacted]}
  Rendering finish_installation/resend_email.html.erb within layouts/finish_installation
  Rendered finish_installation/resend_email.html.erb within layouts/finish_installation (0.6ms)
  Rendered common/_special_font_face.html.erb (0.2ms)
  Rendered layouts/_head.html.erb (0.3ms)
Completed 200 OK in 27ms (Views: 2.6ms | ActiveRecord: 2.4ms)

and yet no email shows up in the mailgun logs, nor anywhere else. My app.yml contains:


…which seems straightforward enough. What have I overlooked?

Can you connect to mailgun on port 587, because swaks defaults to port 25/plaintext.

Try the telnet command in the guide above, or from a quick look though the swaks manual, try adding --tlsc --port 587 as parameters.

--tlsc requires the use of TLS, which I’m not at yet. Just using --port 587 works:

=== Trying
=== Connected to
<-  220 ak47 ESMTP ready
 -> EHLO

So my machine can talk to mailgun using the SMTP address, port, user name, and password in my Discourse configuration, but Discourse can’t. Also, Discourse produces no information in its logs indicating that it thinks it failed. What could I possibly be doing wrong?

I wasn’t able to figure out what I’d done wrong, but I deleted the entire droplet and build a new one from scratch, and it works now.


This topic was automatically closed after 33 hours. New replies are no longer allowed.