Pregunta

he encontrado una manera de enviar correo electrónico de texto plano con la 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 tengo que enviar texto con formato HTML.
Tratando de setType ( "text / html") no funciona.

¿Fue útil?

Solución

Puede pasar de texto en su Spanned adicional. Para asegurar que la intención resuelve únicamente a las actividades que se encargan de correo electrónico (por ejemplo, Gmail y aplicaciones de correo electrónico), puede utilizar ACTION_SENDTO con un principio Uri con el esquema mailto. Esto también funciona si no se conoce el 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())
);

Otros consejos

Esto fue muy útil para mí para el HTML, pero el ACTION_SENDTO no funcionó bastante para mí como es - Tengo una "acción no compatible" mensaje. He encontrado una variante aquí, que lo hace:

http: //www.coderanch. com / t / 520651 / Android / móvil / no-aplicación-realizar-acción cuando

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("<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..."));

Tengo que (todavía) comenzó el desarrollo de Android, pero la documentación de la intención dice que si se utiliza EXTRA_TEXT, el tipo MIME debe ser text / plain. Parece que si quieres ver el HTML, que tendría que utilizar EXTRA_STREAM lugar ...

estado tratando de enviar HTML a través de aplicación de Gmail durante un tiempo, por lo que decidió abandonar una idea de lo que he encontrado, por si acaso alguien más está teniendo problemas similares.

Parece que no importa lo que hice, no pude conseguir el html para tener el texto en negrita en ella. Luego he intentado cambiar al cliente de la perspectiva y para mi sorpresa que estaba funcionando muy bien. marcado HTML también estaba trabajando en otros dispositivos más antiguos, pero no en la mía (Galaxy s7 API 26), por lo que pensé, esa aplicación Gmail parece haber abandonado el soporte para la sintaxis HTML que proviene de la intención o tal vez ahora usted está obligado a proporcionarla de alguna manera muy específica que no está claramente documentada.

Última versión de Gmail que trabajó para mí era la versión 9.6.25 ... en Nexus 5X API 25 emulador (turrón) Y que dejó de funcionar a partir versión 7.5.21 ... En Nexus 5x API 26 emulador (Oreo)

¿Qué pasa tratando de añadir un poco de html en el área de texto?

emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "<strong>Test</strong>");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top