[Help needed] issue self hosting lemmy and email smtp

FrayDabson@vlemmy.net to Selfhosted@lemmy.world – 6 points –

I am trying to setup my own lemmy server. I used ansible.

I can access my server via my domain just fine. But emails are not working.

First i had my mail and mx records pointing to privateemail via namecheap.

Then i tried using cloudflare email routing and their mx records.

neither worked for me with error connecting.

I thought maybe using dovecot? But self hosting email is new to me

I was hoping to use namecheaps privateemail but wasn’t sure how to get it working.

The email account worked and can send / receive but Lemmy and postfix cannot communicate with it.

Now I have no Mx records as I’m not sure what I should be using I am sure I am missing something obvious but idk what

Any ideas ?

10

You don't need MX records for outgoing mail. Mailjet works well for me and gives you 200 free daily mails.

Since nobody bothers to check previous posts (even from just a day or two ago), I won't bother with the details. All I will say is to learn the purposes of an MX record and how sending email works (and the differences). Hint: MX records have nothing to do with sending emails from your server. Just use a third party SMTP service in your config.hjson file.

Oh I read plenty posts. I am no expert so not always easy for me to understand relating their experiences to mine.

I was under the impression that postfix is all that was needed. And my config.hjson file is pointing to postfix. The issue that caused me to get confused and go down a very incorrect rabbit hole was that the postfix logs repeatedly error about connecting to my Mx record servers.

The errors are coming from the postfix docker that it cannot communicate with any Mx server I tried.

I read on github that it is a bug to use external smtp servers. You need to configure the postfix Container or wait for an update to use external SMTP.

GitHub issue SMTP

I use external smtp and have had no problems over several versions.

OP, please share your config.hjson (redacting all sensitive info)

Working perfectly fine here as well. From the backend's perspective, a relay or an external server shouldn't be functionally different whatsoever.

Could you help me with the setup of the SMTP via lemmy.hjson?

Mine looks like this:

email: {
    smtp_server: "smtp.domain.de:465"
    smtp_login: "admin@domain.de"
    smtp_password: "secretpass"
    smtp_from_address: "admin@domain.de"
    tls_type: "tls"
  }

That really should work, I would check for potential firewall issues or something.

Mine is basically identical to yours:

email: {
    smtp_server: "mail.h.max-p.me:465"
    smtp_login: "lemmy@max-p.me"
    smtp_password: "REDACTED"
    smtp_from_address: "lemmy@max-p.me"
    tls_type: "tls"
  }

It's possible your server is slightly misconfigured and actually serve plain traffic on 465 and requires the use of the STARTTLS command.

Can you reach your server with openssl?

openssl s_client -connect smtp.domain.de:465

This should end up with something like that:

    Start Time: 1688422790
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK
220 hosting.max-p.me ESMTP Postfix

For my instance, I already have an MXRoute account that I use for my personal email, so I just set up an account on there and pointed Lemmy at that. I've been down the road of self-hosting email, and it is a dreadful experience.

Granted, that was with full inboxes and POP3, just hosting the send part might not be so bad. But then you have to contend with possibly being on spam lists, and those are hard to get yourself removed from. If you have some cash to let someone else deal with that headache for you, I fully encourage taking that route.