Error in String.getBytes() ?

Result: last character lost

Because your array is not large enough.

Result: A blank space after my message, so no good

Because you are not defining the correct length in the call to getBytes().

Result: String is send, no errors/missing chars/blanks etc

You've gotten lucky.

The array size needs to be based on length()+1. The value in the call to getBytes() needs to be length(). The getBytes function needs to know how many characters it can write to the array.

You really should not be defining the buffer this way, though. The buffer should be statically defined, with a set size. Then, you should use the toCharArray() method to get data out of the String, if you feel that you must abuse the Arduino by using the String class.