I am wondering what the standard tool is for sending and receiving SMS and MMS on a device that does not have a SIM card in it.
Is there some tool that can do it natively? Is there a specific carrier that is commonly used for this? Is there some sort of selfhosted service that bridges it to email, and if so do I need to put a SIM card in my server?
Bonus points if I can do it within Emacs.
You could use a matrix bridge (matrix.org/ecosystem/bridges) or use KDE connect
Note: these solutions assume you have a phone
Depends on what you are trying achieve.
You can send sms via foss no problem as long as you know what carrier the recipient uses. All of the carriers seem to have email bridges to the sms network. Receiving sms is another question entirely. To receive sms, the network needs to know where to send the message. There are commercial platforms that can link you into the sms network.
Another option is KDEConnect which can link your Android device to your computer and you can send and receive sms that way.
https://simpletexting.com/blog/how-to-text-from-computer/
Most VoIP providers have either an HTTP API you can hit and/or email to/from text.
Additionally, some carriers do offer an email address that can be used to send a text to one of their users but due to spam it's usually pretty restricted.
You can use a VoIP or SIP provider and then to send SMS and MMS messages you can install an app called Chatty: https://flathub.org/apps/sm.puri.Chatty