Failed to send magic link email - Greeting never received

  • url: https://the-edmond-star.us
  • latest version of ghost
  • ghost was installed via the ubuntu instructions on the documentation
  • node v16.19.1
  • mysql Ver 8.0.32-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu))
  • Browser, firefox :sunglasses:

When I try to subscribe to the site I get an error stating: “Failed to send magic link email”

When I check ghost log I get the following:

NAME: EmailError
CODE: ETIMEDOUT
MESSAGE: Failed to send email. Reason: Greeting never received.

level: normal

"Please see https://ghost.org/docs/config/#mail for instructions on configuring email."
Error: Greeting never received
    at createMailError (/var/www/the-edmond-star/versions/5.42.2/core/server/services/mail/GhostMailer.js:68:12)
    at SMTPConnection._formatError (/var/www/the-edmond-star/versions/5.42.2/node_modules/nodemailer/lib/smtp-connection/index.js:790:19)
    at SMTPConnection._onError (/var/www/the-edmond-star/versions/5.42.2/node_modules/nodemailer/lib/smtp-connection/index.js:776:20)
    at Timeout.<anonymous> (/var/www/the-edmond-star/versions/5.42.2/node_modules/nodemailer/lib/smtp-connection/index.js:710:22)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7

My config.production.json looks something like this:

  "mail": {
    "transport": "SMTP",
    "options": {
      "service": "Mailgun",
      "host": "smtp.mailgun.org",
      "port": 465,
      "secure": false,
      "auth": {
        "user": "postmaster@mg.the-edmond-star.us",
        "pass": "example-password-here"
      }
    }

Any idea what steps I can take to debug?

Port 465 requires a secure connection. In contrast, StartTLS which is preferred, negotiates using plain text, and uses "secure": false,.

Try this…

  "mail": {
    "from": "<from>",
    "transport": "SMTP",
    "options": {
      "host": "smtp.mailgun.org",
      "port": 587,
      "service": "Mailgun",
      "secure": false,
      "requireTLS": true,
      "auth": {
        "user": "<userid>",
        "pass": "<password>"
      }
    }
  },