Was tun damit "mailto" auf dem Handy funktioniert?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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







IchMalWiederXY 
Fragesteller
 26.01.2024, 18:40

Werde ich testen. Danke schon mal für die Beispiel-Umsetzung. Melde mich wieder.

0
IchMalWiederXY 
Fragesteller
 27.01.2024, 12:11

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 ?!

0
IchMalWiederXY 
Fragesteller
 27.01.2024, 12:40

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.

0

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


IchMalWiederXY 
Fragesteller
 25.01.2024, 17:45

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 :-(

0