samsung - enviar mensaje por correo en android studio
Cómo enviar correos electrónicos HTML (5)
¿Qué tal si tratamos de agregar algo de HTML en el área de texto?
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "<strong>Test</strong>");
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[]{"[email protected]"});
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.
Debes cambiar "EXTRA_TEXT" por "EXTRA_HTML_TEXT"
https://developer.android.com/reference/android/content/Intent.html#EXTRA_HTML_TEXT
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="[email protected]";
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("<p><b>Some Content</b></p>")
.append("<a>http://www.google.com</a>")
.append("<small><p>More content</p></small>")
.toString())
);
startActivity(Intent.createChooser(emailIntent, "Send email..."));
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("<p><b>Some Content</b></p>")
.append("<small><p>More content</p></small>")
.toString())
);
Todavía no he iniciado el desarrollo de Android, pero la documentation 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 ...