Help Troubleshooting Email Verification on Self Hosted
Any good resources/Discord servers (to discuss with other devs) for troubleshooting user login/email verification issues?
I have a self-hosted instance and was able to make the admin user, but when trying to create a new test user, the user does not get the verification email.
I am able to create the new user but get no email verification and then when I try to login the login button gets stuck with the spinner. No frontend console logs so I assume something is dying server-side and not bubbling the error.
Really just looking for some guidance/links to docs on how I can access logs to troubleshoot server-side errors (and my gut tells me maybe an email issue but I am a novice in this space so not sure).
How did you set up Lemmy? If you used Docker, you can get them from docker logs. For a native install, I'm unclear on where the logs get written or if they go through syslog; perhaps someone else can chime in.
If you're using docker, try this:
Enter your Lemmy directory and run:
docker-compose logs --tail=10 -f lemmy
where lemmy is the name of the container running the lemmy backend (not the ui). With the logs tail-ing, try your registration process and look for any errors.
The logs are fairly easy to parse visually, which is nice because there are quite a few backend errors that do not pop up in the UI. Keeping the logs tail-ing for the first day or so was really helpful in getting my instance up and running.
For what it's worth, I've got email verification set up and working on my instance. I had some issues at first, but I had two problems, both of which gave me endless spinners in the UI:
At first, I forgot to add the email settings to lemmy's config.hjson file (d'oh!)
I was using the SSL port for my SMTP server but forgot to set the tls_type to tls.
If the backend has any issue connecting to the email server, it should show up in the logs.
Nice! Thanks your mention of the config.hjson makes me wonder lol. I probably goofed that too.
I did the ansible install which I believe just adds orchestration on top of the Docker install. I'll ssh in and try the docker-compose command.
Do you know, if I did goof the email config, can I just tweak the config locally and then re-run ansible? Or do I need to do some manual tweaks to the deployed solution? Or I suppose at this point it might be easier to just blow the instance away and start fresh.
I'm not clear on the ansible install, but if it's just a layer on top of the docker deployment, you should be able to find the config file, edit it, and restart the container for the Lemmy back end.
I think that will work for testing, but I don't know if that will get wiped out if you ever redeploy from ansible.
where are you running your environment ? I'm on DigitalOcean for example since last night, found out this morning that digitalocean blocks smtp port 25 to prevent being used for spammers.
when checking the logs, also check the postfix container, that's the email server.
if that reads it can't connect you probably have the same issue.
see this thread for setting up sendgrid as a relay to your postfix mail server
You're probably best off submitting an issue on github, but note that depending on how you have SMTP configured and how you're sending mail- you may be having issues with your hosting provider, mine blocks the SMTP ports. I'm currently working to get mail set up, but its very difficult. I'll keep you posted.
I spent the last few hours trying to get mail working on my instance. Eventually I set up postfix on my linux host and had the lemmy docker container use that. Happy to say it is working.
Glad to hear that, I recently just got mail working as well. I ended up using an smtp relay service. Did you have any issues with getting your emails rejected? I might switch as this service is quite expensive.
If email isn't working, then you'll have to turn off email verification in your instance's settings before anyone is able to log in without encountering that spinner.
When I set up lemmy on my server with lemmy-ansible, the config file was initially set up with a valid-looking SMTP config. But when emails weren't working I looked more closely, and it turned out that there is something broken with the SMTP service that lemmy is integrated with by default. It seems that you will need to provide your own credentials.
Does the gmail SMTP server have a limit on how many emails can be sent per day?
I think it does, yes. The kinsta.com link says the limit is 500 per day. If you're expecting a higher volume than that, or if the unpredictability of relying on a free Google service for anything is not acceptable, then you would probably want to pay for an inbox service.
But if you're running a small instance and just need the occasional email to go through without a lot of effort or fees, then it ought to be fine.