Sounds like one or more ports might be blocked. possibly via firewall. You might also have an issue with your certs, too.
Specifically, I’d check that port 80 and 443 are working for web (which are needed for the Exchange verification piece since it’s in the nginx config) and that ports 143,587,993,465 in addition to port 25 are working for mail (depending on whether you’re using TLS, SSL, etc.). You can google how to do this, but basically you want to make sure mailcow’s docker apps are “listening” and/or responding appropriately to requests on the correct ports. (e.g. is your HTTP_BIND, HTTP_PORT, HTTPS_BIND, HTTPS_PORT config in your mailcow.conf file going to the right ports on the right hosts?)
Note that some ISPs <block> certain ports, especially port 25. There are work-arounds but port validation is the first place I’d check.
Does mail work for other devices, or is it just the iPhone having issues? I’d also do some checks to compare on-LAN vs access from over the WAN/internet.
Another thing to check – and this could be a stretch – are your DNS settings on your mailcow host working (i.e. can you do successful DNS lookups?) When my DNS got messed up, I saw really weird behaviours with mailcow that took me a while to troubleshoot before I found out it was the DNS.