As the topic would suggest I’ve run into another problem with PieFed…I have Mailgun set up as my SMTP host for password resets and the like, the password to my knowledge is correct as I’ve tested the configuration out in a separate Python script and it logged into smtp.mailgun.org successfully on port 587.
Has anyone else set up Mailgun or similar external SMTP hosting that may be able to help debug the issue?
I’ve also tried setting up SMTP, but gave up. I just could never get it to work. Not sure whether the docs are just lacking or whether it might be a bug.
Goodness, how do you handle password resets and the like? Unfortunately I won’t be able to operate a PieFed server without SMTP support, but I haven’t been able to figure out what the issue is like yourself.
Single user instance*, I guess I’d do that using SQL as the UI does not allow me to reset it. But I could also just change it, I know I don’t lose my passwords.
*actually two human users, but the other human knows I cannot easily reset it
Out of curiosity was yours a bare metal or Docker installation? I had the exact same problem with the bare metal install, but with Docker the same mail configuration worked flawlessly. Perhaps the bare metal install documentation is missing a step?
I use Docker, must be somrthing else.
Mail parameters are set correctly, yet I never got any email when trying to test password resets and I also did not find anything in the logs. Not sure what the logs would say if it successfully sends an email.
This may just be a shot in the dark but what is the
MAIL_USE_TLSsetting in your configuration? I also had issues with mail delivery to start with and it turned out that the problem was that I thought that setting was for SMTPS, but it’s actually whether to use STARTTLS. Granted since you’re using port 587 either value should work, but Mailgun might block unencrypted submissions.Also, I think almost all email delivery happens from the celery instance. This was also a mistake I made to start with because I didn’t prioritize getting async up and working (turns out that’s very important).
MAIL_USE_TLS=True in my current configuration…that’s what’s really strange about it. The exact same configuration in Docker doesn’t work for the bare metal install. I’ve yet to figure out why that is, I’m just glad that it works in the Docker version!
Try this:
set the FLASK_DEBUG environment variable to 1 and then restart your systemd services / docker containers.
Then go to
https://your-instance.tld/test_email?email=your-email@whatever.comIf it fails is there anything interesting in the logs?
Try removing the
MAIL_USE_TLS=Truefrom your .env file. Often SMTP providers will let you use two ports, one of them for TLS and one without. You’ll need to try both ports, with MAIL_USE_TLS on and off to eliminate all possibilities.Thank you, I tried this from my Docker version of the instance, mail seems to be sent as normal through that…I just need to figure out why it’s happening with the non-Docker version, so I’ll have to test that and check the logs once I get a chance. It’s probably something in the “hard way” configuration that I didn’t get right along the way!
If you are trying to run things on a VPS, many hosting companies will block the standard email ports by default to prevent spammers from using their network. Usually you have to go through some extra steps to open up those ports.
Some smtp services will allow you to use a nonstandard port. I use
resend.comto send smtp emails, and this is what my PieFed environment variables look like:MAIL_USE_TLS=True MAIL_SERVER='smtp.resend.com' MAIL_PORT=2587 MAIL_USERNAME='resend' MAIL_PASSWORD='my_api_key' MAIL_FROM='my_from_email@instance.tld'Ah, my configuration looks very similar, the only difference is that I’m using Mailgun 😁 I am self-hosting and our IP does allow HTTP/HTTPS, but not SMTP for obvious reasons!





