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