SMS not working when replace delay with millis

You should be able to get rid of most of the delay statements altogether. The only one I think you need is after the AT+CMGS=\"+6xxxxxxxxxx\"\r" command is sent.

If your sensor only refreshes every second then this small delay should make no difference.