it-swarm.com.de

So senden Sie eine HTML-E-Mail

ich habe einen Weg gefunden, E-Mail-Nachrichten mit Absicht zu versenden:

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

Aber ich muss HTML-formatierten Text senden.
Der Versuch, setType ("text/html") zu versuchen, funktioniert nicht.

35
Denis Palnitsky

Sie können Spanned Text in Ihrem Extra übergeben. Um sicherzustellen, dass die Absicht nur für Aktivitäten gilt, die E-Mails verarbeiten (z. B. Gmail und E-Mail-Apps), können Sie ACTION_SENDTO mit einem Uri verwenden, der mit dem Mailto-Schema beginnt. Dies funktioniert auch, wenn Sie den Empfänger nicht vorher kennen:

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())
);
47
antnerves

Das war sehr hilfreich für mich im HTML-Format, aber das ACTION_SENDTO funktionierte für mich nicht ganz so wie es war - ich habe eine Meldung "Aktion nicht unterstützt" erhalten. Ich habe hier eine Variante gefunden, die:

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

Und hier ist mein Code, der die beiden miteinander kombiniert:

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..."));
3
Andy Weinstein

Ich habe (noch) nicht mit der Android-Entwicklung angefangen, aber in der Dokumentation für die Absicht heißt es, wenn Sie EXTRA_TEXT verwenden, sollte der MIME-Typ text/plain sein. Wenn Sie HTML sehen wollen, müssen Sie stattdessen EXTRA_STREAM verwenden ...

2
Chris Shaffer

Ich habe schon seit einiger Zeit versucht, HTML per Google Mail-App zu verschicken, also beschloss ich, einige Erkenntnisse zu hinterlassen, was ich gefunden habe, nur für den Fall, dass jemand anderes ähnliche Probleme hat.

Es scheint so, als würde alles, was ich getan habe, nicht dazu führen, dass die HTML-Datei fetten Text enthält .. Dann habe ich versucht, auf den Outlook-Client umzuschalten, und zu meiner Überraschung funktionierte das einwandfrei . HTML-Markup war Ich arbeite auch mit anderen älteren Geräten, aber nicht mit meinen (galaxy s7 API 26). Ich dachte mir, dass Google Mail die Unterstützung für die HTML-Syntax scheint, die aus Vorsatz kommt, oder vielleicht müssen Sie sie jetzt in einigen Versionen angeben spezifische Weise, die nicht eindeutig dokumentiert ist.

Die letzte gmail-Version, die für mich funktionierte, war Version 6.9.25 ... auf dem Nexus 5X API 25-Emulator (Nougat) Und sie funktionierte nicht mehr ab Version 7.5.21 ... On Nexus 5x API 26-Emulator (Oreo)

1
SMGhost

Sie müssen "EXTRA_TEXT" für "EXTRA_HTML_TEXT" ändern.

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

0
Rodrigo Bermejo