Was tun damit "mailto" auf dem Handy funktioniert?
Auf dem PC funktioniert diese Zeile JavaScript innerhalb eine öffentliche WebSeite (html)
let myPl = "blabla";
window.location.href = "mailto:MaxMuster1@web.de?bcc=MaxMuster2@freenet.de;&subject=BlaBla&body=" + "Hallo MaxMuuster,%0D%0A=== Info Start ===" + "%0D%0A" + myPl + "=== Info Stop ===";
Auf dem Handy wird ebenfalls ein assoziertes eMail Programm geöffnet und die Empfänger und Subject eingetragen.
Der body Inhalt fehlt aber.
Was gilt es zu tun, damit auch der body im Handy angezeigt wird?
2 Antworten
Geht doch... habs als Htmlseite auf meinem Heimserver, kann Deine Angaben nicht nachvollziehen Klappt auf meinem Samsung sowohl mit GMX als auch mit Google-Mail
Allerdings sind Leerzeichen und andere "nichtASCII"/"nichtDruckbare"-Zeichen in Urls kritisch
Je nach Browser/Mailprogramm kann dies zu "Komplikationen" führen. Am saubersten fährst Du wenn Deinen String erstmal ganz normal zusammenbastelst Dabei solltest du Zeilenvorschübe ganz normal mit den Charakter-Escapes "\n\r" einfügen.
Das Umsetzen in eine universell "verständliche" Url erledigt encodeURI(). Auf diese Weise sind auch UTF-Zeichen etc. kein Problem.
Demo.html
<!DOCTYPE html>
<html>
<body>
<p>Dein richtig encodeter uri</p>
<p id="alsText">mailto:nix@nix</p>
<a href="mailto:nix@nix" id="myUniqueLinkId">Open it in Mailprogramm</a>
<script>
const linefeed = "\n\r"
let myPl = "Einschub Text";
//so siehts doch gleich etwas übersichtlicher aus... (und gleich mal und innereQuotes umlaute Testen🥱)
MyRAWUri="mailto:MaxMuster1@web.de" +
"?bcc=MaxMuster2@freenet.de;" +
"&subject=Meine Mail" +
"&body= Hallöchen \"MaxMuuster\"," + linefeed +
"=== Info Start ===" + linefeed +
myPl + linefeed +
"=== Info Stop === Tschüß";
//natürlich kannst Du's auch in eine Zeile klatschen: "mailto:MaxMuster1@web.de?bcc=MaxMuster2@freenet.de;&subject=Meine Mail&body=Hallo MaxMuuster,\n\r === Info Start ===\n\r" + myPl + "\n\r=== Info Stop ===";
encoded = encodeURI(MyRAWUri);
document.getElementById("alsText").innerHTML = encoded;
document.getElementById("myUniqueLinkId").href=encoded;
//altenativ...: window.location.href = encoded
</script>
</body>
</html>
encodeter Url:
mailto:MaxMuster1@web.de?bcc=MaxMuster2@freenet.de;&subject=Meine%20Mail&body=%20%20%20Hall%C3%B6chen%20%22MaxMuuster%22,%0A%0D===%20Info%20Start%20===%0A%0DEinschub%20Text%0A%0D===%20Info%20Stop%20===%20Tsch%C3%BC%C3%9F
Leider auch ein "Einzeiler" als Body aus zusammengesetzten Inhalten will auf dem Handy nicht. Sofern dir noch eine Ursache für dieses Betriebssystem oder Browser Abhängigkeit einfällt gerne erwähnen. Würde das Ding auch gerne handy kompatibel hinbekommen.
Habe meinen Code entsprechend angepasst.
UND auch dein Beispiel 1:1 mal auf die Webseite gepackt.
Leider der gleiche Effekt. Am PC funktioniert es, mit dem Handy aber nicht.
Handy GMAIL zeigt noch die "erste" Zeile des Body: Hallöchen "MaxMuuster",
..alles danach mit Infostart, etc wird aber ebenfalls NICHT ins eMail Programm transportiert. (Macht für mich keinen Sinn)
Darf im Body ggf keine linefeed einbauen im Handy (Android) Kontext ?!
Werde ich testen. Danke schon mal für die Beispiel-Umsetzung. Melde mich wieder.
Hallo IchMalWiederXY,
da kannst du nichts tun. Die Implementierung, wie eine App bzw. das Betriebssystem das mailto - Protokoll umsetzen hast du nicht in der Hand. Du hast entsprechende Parameter angefügt und wenn eine App das nicht ausliest, dann kann nur der Entwickler das RFC richtig implementieren.
Ben
mmhh Auf dem Handy öffne ich auch die selbe Webseite. Es ist also dort ebenso Chrome, Edge, FireFox, .. ist halt seltsam, dass dort nur der Body nicht transportiert wird :-(