MFMessageComposeViewController

We have some questions round the inbuilt SMS service provided by the latest version of iOS...


1. Is there any possibility of programmatically sending text messages WITHOUT invoking MFMessageComposeViewController, i.e. sending SMS in the background?


2. Can we send a message to multiple recipients, on the single click of the SEND-button, if each message is appended with the Name of the recipient?


3. Is there any limitation on how many text messages can be sent at one time, (or how many recipients can be added to one message)?


4. Is there any limitation on how many text messages can be sent in 1 hour?


5. Also are there any limitations around using the SMS/MMS composer view?

Replies

1. Is there any possibility of programmatically sending text messages WITHOUT invoking MFMessageComposeViewController, i.e. sending SMS in the background?

No.

The one way around this is to set up your own text message web service. Your app can then use TCP/IP networking to interact with the web service to send the text message. This works well for some folks (for example, an emergency alert app) but doesn’t work if you need the message to be sent from the iPhone owner’s account.

2. Can we send a message to multiple recipients, on the single click of the SEND-button, if each message is appended with the Name of the recipient?

I’m not sure I understand the question. The

recipients
property is an array so, yes, you can set up a message addressed to multiple recipients.

3. Is there any limitation on how many text messages can be sent at one time, (or how many recipients can be added to one message)?

4. Is there any limitation on how many text messages can be sent in 1 hour?

5. Also are there any limitations around using the SMS/MMS composer view?

I’m not going to go into details here. Rather, I encourage you to use the MessageUI framework in the spirit in which it was intended. The framework was introduced so that you can assist the user in creating messages in a way that’s more flexible than the previous

-openURL:
mechanism (messages from templates, with attachments, and so on). It was not designed as a bulk messaging service. If you attempt to use it that way, you will run into problems.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Hi Quinn "The Eskimo"


I have a very similar question, and I'm hoping maybe some updates to the programming language has changed somehow. Full disclosure: I'm by no means a developer! I'm just working with an external developer to create an app which can holefully save lives!


We need to make the app send text messages (SMS) to a selected list of contacts without user interference, but based on analysis of accelerometer and gps data. The issue is that the app has to be able to send these messages outside of data networks, where there's only regular cell service. We therefore can't use a networking service.


Is this still not possible in any programming language? and if not, does anyone have a suggested workaround or alternative solution?


Also, what is stopping it from being possible? Is it an restriction created by Apple, and can this restriction somehow be lifted?


Thanks in advance!


PS We're using Objective-C

Is this still not possible in any programming language?

Yes.

Also, what is stopping it from being possible?

I think it’s safe to say that, if Apple wanted this to be possible, we would have introduced an API for it by now (9 years into the iOS project). AFAIK we have not officially stated why we don’t want to enable this, but there are some pretty obvious security concerns here.

Is it an restriction created by Apple, and can this restriction somehow be lifted?

That would require a change to the OS itself. Normally I’d say you should file an enhancement request for the features you need — and you’re still free to do that, obviously — but in this case I don’t think that’s a good use of your time.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"