Öffnen Sie automatisch den Standard-E-Mail-Client und füllen Sie den Inhalt vorab aus

76

Ich muss den Standard-E-Mail-Client eines Benutzers automatisch öffnen, wenn er Inhalte auf einer Seite speichert. Ich muss den E-Mail-Betreff ausfüllen, adressieren und Inhalte in den E-Mail-Text einfügen.

Was ist die beste Option, um dies zu erreichen?

Ich kenne das mailto:Attribut, aber der Benutzer muss darauf klicken und ich bin nicht sicher, ob Sie damit das Thema und den Inhalt angeben können.

Thomas Buckley
quelle
Sie können jeden Teil einer E-Mail in einem href mit Mailto-Präfix festlegen. Hier ist ein Tool, das ich gebaut habe, um es ganz einfach zu machen: mailto.now.sh
Dawson B

Antworten:

120

Wie beschrieben von RFC 6068 , mailto können Sie angeben , Betreff und Körper sowie cc Felder aus . Zum Beispiel:

mailto:[email protected]?subject=Subject&body=message%20goes%20here

Der Benutzer muss nicht auf einen Link klicken, wenn Sie das Öffnen mit JavaScript erzwingen möchten

window.location.href = "mailto:[email protected]?subject=Subject&body=message%20goes%20here";

Beachten Sie, dass es keine einheitliche Standardmethode gibt, mit der Browser / E-Mail-Clients Mailto-Links verarbeiten (z. B. können Betreff- und Textfelder ohne Warnung verworfen werden). Außerdem besteht das Risiko, dass Popup- und Werbeblocker, Antivirensoftware usw. das erzwungene Öffnen von Mailto-Links stillschweigend blockieren.

jsalonen
quelle
1
Gibt es eine Möglichkeit, das Bild (nicht die URL, sondern das tatsächliche Bild) mit jQuery in die Nachricht zu laden?
Kousha
10
Was passiert, wenn die Nachricht das Zeichenlimit überschreitet? Es ist eine gute Lösung, aber es scheint keine elegante Lösung zu sein.
Leiseliesel
2
Was ist, wenn ich einen anderen Inhalt als Beispielbild, CSS oder HTML
hinzufügen muss
1
Ist es möglich, einen Anhang mit den oben genannten Details zu senden?
Ajay Sharma
11

JQuery:

$(function () {
      $('.SendEmail').click(function (event) {
        var email = '[email protected]';
        var subject = 'Test';
        var emailBody = 'Hi Sample,';
        var attach = 'path';
        document.location = "mailto:"+email+"?subject="+subject+"&body="+emailBody+
            "?attach="+attach;
      });
    });

HTML:

 <button class="SendEmail">Send Email</button>
user5506072
quelle
8
wie man HTML-Inhalte auf diese Weise sendet
Amay Kulkarni
3

Auf diese Weise implementiert, ohne Jquery zu verwenden:

<button class="emailReplyButton" onClick="sendEmail(message)">Reply</button>

sendEmail(message) {
    var email = message.emailId;
    var subject = message.subject;
    var emailBody = 'Hi '+message.from;
    document.location = "mailto:"+email+"?subject="+subject+"&body="+emailBody;
}
Vikram Kedlaya
quelle
0

Versuchen Sie Folgendes: Die Standardmail wird direkt geöffnet.

<a href="mailto:[email protected]"><img src="ICON2.png"></a>
subindas pm
quelle