Cómo enviar correos electrónicos HTML

Encontré una manera de enviar correos electrónicos de texto sin formato con intención:

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("text/plain"); emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"example@mail.com"}); emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject"); emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Test"); 

Pero necesito enviar texto con formato HTML.
Intentar establecer Type (“text / html”) no funciona.

Puede pasar texto Spanned en su extra. Para asegurarse de que la intención se resuelva solo en las actividades que manejan el correo electrónico (por ejemplo, aplicaciones de Gmail y correo electrónico), puede usar ACTION_SENDTO con un ACTION_SENDTO comience con el esquema mailto. Esto también funcionará si no conoce al destinatario de antemano:

 final Intent shareIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:")); shareIntent.putExtra(Intent.EXTRA_SUBJECT, "The Subject"); shareIntent.putExtra( Intent.EXTRA_TEXT, Html.fromHtml(new StringBuilder() .append("

Some Content

") .append("

More content

") .toString()) );

Esto fue muy útil para mí para el HTML, pero el ACTION_SENDTO no funcionó para mí tal como está: recibí un mensaje de “acción no compatible”. Encontré una variante aquí que hace:

http://www.coderanch.com/t/520651/Android/Mobile/no-application-perform-action-when

Y aquí está mi código que combina los dos juntos:

 String mailId="yourmail@gmail.com"; Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto",mailId, null)); emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject text here"); // you can use simple text like this // emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,"Body text here"); // or get fancy with HTML like this emailIntent.putExtra( Intent.EXTRA_TEXT, Html.fromHtml(new StringBuilder() .append("

Some Content

") .append("http://www.google.com") .append("

More content

") .toString()) ); startActivity(Intent.createChooser(emailIntent, "Send email..."));

Todavía no he iniciado el desarrollo de Android, pero la documentación para la intención dice que si usa EXTRA_TEXT, el tipo MIME debería ser texto / normal. Parece que si quieres ver HTML, deberías usar EXTRA_STREAM en su lugar …

Debes cambiar “EXTRA_TEXT” por “EXTRA_HTML_TEXT”

https://developer.android.com/reference/android/content/Intent.html#EXTRA_HTML_TEXT

¿Qué tal si tratamos de agregar algo de HTML en el área de texto?

 emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Test"); 
Intereting Posts