I've been trying to get some friends signed up on my lemmy instance.
The issue is, so far nobody seems to be receiving the signup/verification emails. I am getting the admin user-signup emails, but those are sent to contact@<instance-domain>. I created 2 test users, one with a instance-domain address, and one to a gmail. The instance-domain address was there within a minute, but the gmail one has yet to arrive.
It looks like you aren't signing your mail with DKIM, don't have SPF set up right, don't have a DMARC policy, and don't have RcRDNS, all of which basically any mail provider will require from you to even consider accepting your mail. Basically without all of that literally anyone can pretend to be whatever.com and send email from it.
This sounds like a mail delivery problem rather than specifically a Lemmy problem. The Lemmy server configuration tells your instance how to send email; the default is to use an SMTP server on localhost.
Assuming you have a mail server running, try checking its logs. Maybe Gmail is rejecting mail from your IP address, or maybe your hosting provider or ISP is blocking port 25 by default as an anti-spam measure?
I agree with @terribleplan@lemmy.nrd.li that the inclusion of a postfix SMTP container and using that in the example configs is probably doing more harm than good.
You shouldn't need the Postfix container at all unless you want to manually set that up and know what you're doing. You configure your SMTP settings in the config.hjson file as outlined in the example defaults.hjson file. I'm using a third-party SMTP provider to avoid any deliverability issues with sending emails directly from my server's IP address. Just ensure you configured your DNS correctly (DKIM, etc.), punch in the info, and it should work.