web-dev-qa-db-fra.com

Ouvrir automatiquement le client de messagerie par défaut et pré-renseigner le contenu

Je dois ouvrir automatiquement le client de messagerie par défaut d'un utilisateur lorsqu'il enregistre du contenu sur une page. Je dois renseigner le sujet de l'e-mail, l'adresser et mettre du contenu dans le corps de l'e-mail.

Quelle est la meilleure option pour y parvenir?

Je connais l'attribut mailto:, mais l'utilisateur doit cliquer dessus et je ne suis pas sûr que cela vous permette de spécifier le sujet et le contenu?

54
Thomas Buckley

Comme décrit par RFC 6068 , mailto vous permet de spécifier les champs subject et body, ainsi que cc. Par exemple:

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

L'utilisateur n'a pas besoin de cliquer sur un lien si vous forcez-le à s'ouvrir avec JavaScript

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

Sachez qu’il n’existe pas de méthode standard unique permettant aux navigateurs/clients de messagerie de gérer les liens mailto (les champs Objet et Corps peuvent par exemple être supprimés sans avertissement). De plus, il y a un risque que des popups et des bloqueurs de publicités, des logiciels anti-virus, etc. bloquent en silence l’ouverture forcée de liens mailto.

88
jsalonen

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>
7
user5506072

S'il vous plaît essayez d'utiliser

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

je vais ouvrir le courrier par défaut directement

1
subindas pm

Implémenté de cette façon sans utiliser Jquery:

<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;
}
1
vikram kedlaya