I wrote my own utility that lets you specify the target as an alias (e.g. username), looks up the phone number and provider for that alias, and sends the message via that provider's SMTP gateway. If the SMTP connection fails, then it is retried in 15 minutes. Each alias also has a quota of the number of messages that can be sent to that target in a 32 day period.
Web-based gateways are more likely to change their interface than email gateways. The program makes a direct SMTP connection rather than using the mailer software since one of it's uses in reporting a backlog in the mail queues.
I'm looking for marbles all day long.