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