SIM900 Shield read only sms headers without text
This is most likely a case of overrun SoftwareSerial buffer. You are reading too slowly from the modem, especially with the Serial.print()s in your code. You should look for SoftwareSerial.h in C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial if you're using Win 8 and above. Or just search your PC for it. Look for this line:

    #define _SS_MAX_RX_BUFF 64


Change 64 to 256 and save. If it solves your problem, try reducing 256 to 128 to see if it still works. The greater the size of the buffer, the lesser the amount of memory available to the rest of your program. 

You could also try this, to interact with the module:

#include &lt;SoftwareSerial.h&gt;

SoftwareSerial SIM900(7,8);

void setup() {
  Serial.begin(19200);
  SIM900.begin(19200);
}

void loop() {
  // put your main code here, to run repeatedly:
  while (Serial.available() &gt; 0){
    SIM900.write(Serial.read());
  }
  while (SIM900.available() &gt; 0){
    Serial.write(SIM900.read());
  }
}


It does the same thing as your code and doesn't require adjusting buffer size, though I still recommend you make the change if you will use other sketches.