Thanks man. But from an app perspective, the only way to ensure a user gets a DM is to publish to one of their relays?
Yep. That's how the protocol works.