What have you tried? Things should "just work" if you install ofono and MMSd. There are more details (urls, which forks are involved) at https://sr.ht/~anteater/mms-stack/
The basic debugging workflow is to run ofono, run MMSd, and try the scripts under the `test` directory in MMSd's source tree. Error messages logged from the script, MMSd, or ofono might be relevant.
MMSd (mms parsing, mostly) and ofono (dual-stack IPv4/IPv6 networking) need patching to make MMS work on T-Mobile; other providers might also need debugging or custom patches.
Right now I'm setting up a central place to collect all the scattered pieces of related software and their statuses, with info on what's been tested to work and what needs to be done next:
You can get working MMS with a command-line interface using ofono and intel's MMSd, but I'm still working on upstreaming the patches that fix both with T-Mobile. I haven't put much online about this work yet, but if anyone wants to work on fixing the interface side of MMS I'd love some help.
The current interface options are all going through telepathy-ofono, which works with group MMS messaging and attachments, but can't really handle attachments the right way because the telepathy IM framework itself has no notion of media messages (as mentioned at e.g. https://github.com/TelepathyIM/telepathy-morse/issues/21#iss...). Ubuntu Touch replaces MMSd with a Go rewrite called `nuntium` but still relies on telepathy-ofono for plumbing: http://docs.ubports.com/es/latest/systemdev/mms-infrastructu...
I think the right way to handle SMS+MMS, for now, would be to just write a dedicated GUI client for it that communicates with ofono MMSd via dbus. I'm thinking about doing it with Rust+GTK.
The basic debugging workflow is to run ofono, run MMSd, and try the scripts under the `test` directory in MMSd's source tree. Error messages logged from the script, MMSd, or ofono might be relevant.
MMSd (mms parsing, mostly) and ofono (dual-stack IPv4/IPv6 networking) need patching to make MMS work on T-Mobile; other providers might also need debugging or custom patches.