Para evitar tener que escribir a mano el charset y el content-type del cuerpo del mensaje, tenés que hacer lo siguiente:
En vez de esta línea:
Código:
texto.setText("<META content=\"text/html; charset=utf-8\" http-equiv=Content-Type>Este es el cuerpo del mensaje<br><br>es dos saltos de linea");
Utilizá las siguientes:
Código:
String texto = "Este es el cuerpo del mensaje<br><br>es dos saltos de linea";
String charset = "utf-8";
String contentType = "text/html";
texto.setText(texto,charset,contentType);
La diferencia entre los 2 códigos, está en la cantidad de parámetros que le pasas al objeto texto de la clase BodyPart.
El método setText, con un sólo parámetro (el que usaste vos), setea el texto como contenido del mensaje, pero configura el contentType en "text/plain" y el charset como "US-ASCII" sobreescribiendo el META que vos especificás.
Al usar la función setText, con 3 parámetros, le estamos diciendo las 3 cosas, el texto, la codificación y el tipo de contenido.
Espero que te sea de utilidad.