So you want MMS to work on Straight Talk with your AT&T locked iPhone 4, but you don't want to jailbreak it? Well here's how we got it working. The short version is that you modify the preferences.plist and com.apple.mms_override.plist files in your iPhone backup and restore to the phone using iBackupBot. This is about the iPhone 4 only at this point as the iPhone 4S can be fixed with a T-Mobile SIM swap technique that is well known.
This was just done today (31-Mar-2012) on an AT&T locked iPhone 4 running unmodified IOS 5.1. It definitely works. The iPhone 4S might work as well, but I haven't tried it as mine worked fine with the T-Mobile SIM swap technique. It has not been tried on an iPhone 3GS either.
iPhone 4 locked to AT&T (if it isn't locked to AT&T you don't need this...)
AT&T compatible micro-SIM from Straight Talk
Windows or Mac (tested on Mac so far) with iBackupBot
Unencrypted iPhone backups. (unencrypted is an absolute necessity)
iPhone Backup Extractor (optional, but highly recommended)
1. Backup your device fully before changing anything. Please, back it up, you're solely responsible for anything you do that breaks it and you should be ready to restore from a clean backup at any point. If you're backing up via iCloud, also right click on the phone in iTunes and click backup so it backs up locally on your computer. You probably should zip up this backup and stash it somewhere.
2. Make sure encryption is off for your backups. (This is step 2 because I think you should make a clean backup prior to attempting any changes and you should zip up or otherwise archive that backup) In iTunes you should have "backup to this computer" checked and encryption should not be checked. If it is checked, you'll need to uncheck it, click apply and probably provide the password, then complete a backup. If the checkbox is checked AND greyed out, you'll need to do some extra work. Again, make sure you have a good backup, and archive it somewhere.
If you can't disable backup encryption because it is greyed out in iTunes, there are generally two things you'll need to change. First, if you have an Exchange account through work, it is likely they are pushing a policy to your phone requiring backup encryption and a passcode etc. You'll need to delete that Exchange account from your phone. It can be added back later easily enough, so don't panic. Second, you may have some profiles under Settings -> General -> Profiles that have passwords (like WiFi configurations) that you put on via iPhone Configuration Utility or Configurator, or your company did, etc. Removing those should allow you to disable backup encryption. You can always add them back as long as you have the .mobileconfig files somewhere.
NOTE: You may also need to remove your backups that are encrypted and do a new fresh backup with encryption disabled. I don't think you will, but it is possible. If so, BACKUP your BACKUP prior to doing anything. Zip it up, tar it, rsync it somewhere etc.
3. Use iPhone Backup Extractor to extract "iOS Files" to a temporary directory somewhere. On your Desktop might be a good place. You could call this directory "before" or something reasonable. This step is optional but the copy of the files from before you edit them will be useful if you run into trouble and need to compare (or "diff") the changes you make later against the files from the original backup.
4. Install iBackupBot (it is $35 and free to try briefly) and launch it. It will grind around looking for backups. Select the appropriate backup for your iPhone 4 and you'll get a list of files. Scroll down to find Library/Preferences/com.apple.mms_override.plist.
5. Double click to edit Library/Preferences/com.apple.mms_override.plist and make it look like below with just the Proxy setting with ip address : port information. Click save changes on the left of the toolbar. You should also check the box in front of this file.
6. Find SystemConfiguration/preferences.plist (you should check the box to the left here as well) and double-click to edit. It might be above com.apple.mms_override.plist or below it, but it should definitely be there. Click on the binoculars to search for "wap.cingular" and you'll find a section like below.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
If you look above this section in the file you should see some references to "ip3" and this is the only place wap.cingular exists in the file anyway. Change "wap.cingular" to "att.mvno" (as Straight Talk recommends) and save this file.
7. With Library/Preferences/com.apple.mms_override.plist and SystemConfiguration/preferences.plist both checked, click on File -> Restore and let the restore proceed. It will take about 30 minutes. I think it is restoring this whole backup, not just the two files, but regardless let the restore proceed until it is finished.
8. MMS should be working now, test it out. If you have any problems use iTunes to backup again, and then iBackupBot to look at com.apple.mms_override.plist and preferences.plist and make sure they're correct.
9. You can use iPhone Backup Extractor to extract "iOS Files" from your backup into a temporary directory (perhaps "after") and compare the two files in this temporary directory with the one from step 3. You can use something like diff on a Mac. This step is optional, but if you've run into problems, the before & after directories will allow you to compare files more easily.