Ö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.


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:username@example.com?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:user@example.com?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.


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 = 'sample@gmail.com';
        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>

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;
}

0

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

<a href="mailto:demo@demo.com"><img src="ICON2.png"></a>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.