Diese Methode scheint in meinem Browser nicht zu funktionieren, und wenn Sie sich umschauen, zeigt sich, dass das gesamte Thema der Angabe von Headern für a mailto Link/Aktion wird nur spärlich unterstützt, aber vielleicht kann das helfen …
Beachten Sie, was ich hier mache. Dem Formular selbst ist keine Aktion zugeordnet. Und der Submit-Button ist nicht wirklich ein submit Typ, es ist nur ein button Typ. Mit JavaScript binde ich mich an das Klickereignis dieser Schaltfläche, setze das Aktionsattribut des Formulars und sende dann das Formular.
Es funktioniert insofern, als es das Formular an a übermittelt mailto Aktion (mein Standard-E-Mail-Programm erscheint und öffnet eine neue Nachricht an die angegebene Adresse), aber für mich (Safari, Mail.app) gibt es nicht wirklich den Betreff oder Text in der resultierenden Nachricht an.
HTML ist nicht wirklich ein sehr gutes Medium, um dies zu tun, da ich sicher bin, dass andere darauf hinweisen, während ich dies schreibe. Es ist möglich, dass dies in einigen Browsern und/oder einigen E-Mail-Clients funktioniert. Es ist jedoch nicht einmal mehr eine sichere Annahme, dass Benutzer heutzutage einen fetten Mail-Client haben werden. Ich kann mich nicht erinnern, wann ich meine das letzte Mal geöffnet habe. HTML mailto ist ein bisschen Legacy-Funktionalität und heutzutage ist es wirklich gut, dass Sie die Mail-Aktion, wenn möglich, auf der Serverseite durchführen.
Ziemlich schockiert über die akzeptierte Antwort hier, wenn Sie und andere sich so viel Mühe gegeben haben, dies sehr gut zu erklären 🙁
– Wesley Murch
24. April 2011 um 21:16 Uhr
@Madmartigan: In der Tat. Ich fand den Kommentar-Thread, den Sie mit dem OP geführt haben, ziemlich aufschlussreich. Die akzeptierte Antwort schien … nicht hilfreich. Tatsächlich hätte ich es fast kommentiert und gefragt, wie sich das bewegt genau Die Aktion von einer Formularaktion zu einem Anker soll bei dem Thema/Körper-Problem in der Frage helfen. Nun ja.
– David
24. April 2011 um 21:19 Uhr
FWIW, viele meiner Kunden lieben Mailto-Links auf ihren Websites, auch wenn sie klobig sind, aber sie sind die Leute, die Standard-Microsoft-Tools für alles bei der Arbeit verwenden (einschließlich Standard-E-Mail-Programm) und mir E-Mails als .doc-Anhänge senden, haha
– Wesley Murch
24. April 2011 um 21:31 Uhr
Nun, die Abstimmung scheint dafür gesorgt zu haben. Für eine Minute dachte ich das war die akzeptierte Antwort. 🙂
– Arlen Beiler
30. Juni 2015 um 14:38 Uhr
Wie ich in meiner Antwort schreibe, erfüllt dieser Vorschlag nicht die Anfrage des OP, bei der es sich um eine E-Mail handelt mit Betreff und Nachricht. Außerdem funktioniert Davids Lösung nicht, weil die meisten, vielleicht alle Kombinationen aus Browsern und E-Mail-Clients die Attribute „Subject“ und „Body“ des mailto:-URI nicht akzeptieren, wenn sie als Aktion von
Das <form> Element mit zugehörigem action Attribut wird nicht verwendet.
Das <input> Element des Typs button wird auch nicht verwendet.
<a> gestylt als Button (hier mit Bootstrap) ersetzt <input type="button">
focusout() mit updateMailString() ist notwendig, weil die <a> Stichworte href -Attribut wird nicht automatisch aktualisiert, wenn sich die Werte der Eingabefelder ändern.
updateMailString() wird auch beim Laden des Dokuments aufgerufen, falls die Eingabefelder vorbelegt sind.
Ebenfalls encodeURIComponent() wird verwendet, um Zeichen wie das Anführungszeichen (“) nach Outlook zu übertragen.
Bei diesem Ansatz ist die mailto: URI geliefert wird (mit subject und body Attribute) in einem a Element href Schild. Dies funktioniert in allen von mir getesteten Kombinationen von Browsern und E-Mail-Clients, die aktuelle (2015) Versionen von sind:
Bonus-Tipp: In meinen Anwendungsfällen füge ich der E-Mail einen kontextbezogenen Text hinzu body. Meistens möchte ich, dass dieser Text Zeilenumbrüche enthält. %0D%0A (Wagenrücklauf und Zeilenvorschub) funktioniert in meinen Tests.
Benutzer949286
Ich konnte nie eine Antwort finden, die die ursprüngliche Frage wirklich befriedigte, also habe ich einen einfachen kostenlosen Service zusammengestellt (Die Post), mit der Sie eine Standard-HTTP-POST-Anforderung zum Senden einer E-Mail senden können. Wenn Sie sich anmelden, erhalten Sie einen Code, den Sie kopieren und in Ihre Website einfügen können. In diesem Fall können Sie einfach einen Formularpost verwenden:
Nochmals, in voller Offenlegung, ich habe diesen Dienst erstellt, weil ich keine passende Antwort finden konnte.
Sie können eine E-Mail nicht direkt mit einem HTML-Formular senden. Sie können das Formular jedoch an Ihren Webserver senden und dann die E-Mail mit einem serverseitigen Programm generieren, das zB in PHP geschrieben ist.
Die andere Lösung besteht darin, einen Link zu erstellen, wie Sie es mit “mailto:” getan haben. Dadurch wird das lokale E-Mail-Programm des Benutzers geöffnet. Und er/sie kann dann die vorausgefüllte E-Mail versenden.
Wenn Sie sich entschieden haben, wie Sie es machen möchten, können Sie auf dieser Seite eine weitere (spezifischere) Frage stellen. (Oder Sie können irgendwo im Internet nach einer Lösung suchen.)
Sagar Patra
@ user544079
Obwohl es jetzt sehr alt und irrelevant ist, antworte ich, um Leuten wie mir zu helfen! es sollte so sein:
Hier sind $emailID, $MySubject, $MyMessageText Variablen, die Sie aus einem FORM oder einer DATABASE-Tabelle zuweisen, oder Sie können einfach Werte in Ihrem Code selbst zuweisen. Alternativ können Sie den Code auch so einfügen (normalerweise wird er nicht verwendet):
<form method="post" action="mailto:[email protected]?subject=New Registration Alert &message= New Registration requires your approval">
Sie können einen Anker verwenden, um zu versuchen, den vorab ausgefüllten Standard-E-Mail-Client des Benutzers zu öffnen mailto:, aber Sie können die eigentliche E-Mail nicht senden. * Anscheinend ist dies auch mit einer Formularaktion möglich, aber die Browserunterstützung ist unterschiedlich und unzuverlässig, daher empfehle ich dies nicht.
HTML kann keine E-Mails senden, Sie müssen eine serverseitige Sprache wie PHP verwenden, was ein anderes Thema ist. Es gibt viele gute Ressourcen, wie man das hier auf SO oder anderswo im Internet macht.
Wenn Sie PHP verwenden, verstehe ich SwiftMailer ziemlich viel vorgeschlagen.
Einige Browser unterstützten zumindest irgendwann Formulare mit Mailto-Aktionen. Sie würden die Daten als URL-codierte Nachricht an die angegebene Adresse senden. Es gab sogar eine Software, um Formulare direkt aus dem Postfach zu entschlüsseln und anzuzeigen. Ich habe solche Formulare jedoch seit einem Jahrzehnt nicht mehr gesehen, da das Versenden von E-Mails von der Serverseite einfach so viel besser ist.
– Matti Virkkunen
24. April 2011 um 20:58 Uhr
@Matti Virkkunen: Das ist interessant, das wusste ich noch nicht. Welche Browser unterstützen diese Funktion? Ich sehe eine Erwähnung davon hier.
– Wesley Murch
24. April 2011 um 21:01 Uhr
Vermutlich mindestens alte Version des IE. Tatsächlich habe ich ein solches Formular in meiner aktuellen Version von Chromium ausprobiert und es hat versucht, einen E-Mail-Client zu starten (ich habe jedoch keinen auf diesem Computer installiert), also tun sie zumindest noch etwas. Ich weiß allerdings nicht, ob die Daten durchgekommen sind.
– Matti Virkkunen
24. April 2011 um 21:03 Uhr
Ich habe es gerade in FF versucht und es öffnete mein MS Outlook (das nicht konfiguriert ist), gefüllt mit einigen der Formularwerte und dem Betreff “Form Post From Mozilla”. Interessant.
– Wesley Murch
24. April 2011 um 21:06 Uhr
10169800cookie-checkhtml-Schaltfläche zum Senden von E-Mailsyes