Das ist etwas verwirrend zu erklären, also nimm es hier mit ...
Ich möchte ein System einrichten, in dem ein Benutzer Vorlagen-E-Mails über meine Website senden kann, es sei denn, diese werden nicht über meinen Server gesendet. Stattdessen wird lediglich der eigene lokale E-Mail-Client mit einer sofort einsatzbereiten E-Mail geöffnet. Die Anwendung füllt den Text der E-Mail mit vordefinierten Variablen aus, damit der Benutzer sie nicht selbst eingeben muss. Sie können die Nachricht dann wie gewünscht bearbeiten, falls sie nicht genau ihren Zwecken entspricht.
Es gibt eine Reihe von Gründen, warum ich möchte, dass es über den lokalen E-Mail-Client des Benutzers erfolgt. Daher ist es keine Option, den Server zum Senden der E-Mail zu bewegen: Es muss zu 100% clientseitig sein.
Ich habe bereits eine meist funktionierende Lösung, und ich werde die Details dazu als Antwort veröffentlichen. Ich frage mich, ob es einen besseren Weg gibt.
quelle
Antworten:
Die Art und Weise, wie ich es jetzt mache, ist im Grunde so:
Der HTML:
Das Javascript:
Dies funktioniert überraschenderweise ziemlich gut. Das einzige Problem ist, dass wenn der Körper besonders lang ist (irgendwo über 2000 Zeichen), er nur eine neue E-Mail öffnet, aber keine Informationen enthält. Ich vermute, dass dies damit zu tun hat, dass die maximale Länge der URL überschritten wird.
quelle
So geht's mit jQuery und einem "Element" zum Klicken:
Anschließend können Sie Ihre Inhalte entweder aus Eingabefeldern (z. B. mithilfe
$('#input1').val()
oder mithilfe eines serverseitigen Skripts mit)$.get('...')
abrufen. Viel Spaßquelle
Sie benötigen kein Javascript, Sie müssen lediglich Ihre href wie folgt codieren:
quelle
href
Wert festzulegen, wenn die Adressen ausgewählt werden. Wenn zum Zeitpunkt des Klicks ein Beitrag benötigt wird, um die E-Mail-Adressen abzurufen, funktioniert dies wahrscheinlich nicht.Wie wäre es mit einer Live-Validierung des Textfelds, und sobald diese über 2000 (oder was auch immer der maximale Schwellenwert ist) hinausgeht, wird angezeigt, dass diese E-Mail zu lang ist, um im Browser ausgefüllt zu werden
<span class="launchEmailClientLink">launch what you have in your email client</span>
"Zu dem hätte ich
und jQuery dies in Ihre onDomReady
quelle
Sie können diesen kostenlosen Dienst nutzen: https://www.smtpjs.com
<script src="https://smtpjs.com/v2/smtp.js"></script>
quelle
Wenn dies nur den Client des Benutzers zum Senden der E-Mail öffnet, lassen Sie ihn diese auch dort verfassen. Sie verlieren die Fähigkeit zu verfolgen, was sie senden, aber wenn dies nicht wichtig ist, sammeln Sie einfach die Adressen und den Betreff und öffnen Sie den Client, damit der Benutzer den Text ausfüllen kann.
quelle
Das Problem mit der Idee ist, dass der Benutzer einen E-Mail-Client haben muss, was nicht der Fall ist, wenn er sich auf Webmails verlässt, was bei vielen Benutzern der Fall ist. (Zumindest gab es keine Umkehrung, um zu dieser Webmail umzuleiten, als ich das Problem vor einem Dutzend Jahren untersuchte).
Aus diesem Grund besteht die normale Lösung darin, sich beim Senden von E-Mails auf PHP Mail () zu verlassen (also serverseitig).
Aber wenn heutzutage "E-Mail-Client" immer automatisch eingestellt wird, möglicherweise auf einen Webmail-Client, bin ich froh zu wissen.
quelle
Anfrage an mandrillapp.com senden :
quelle