Est-il possible de définir l'objet / le contenu de l'e-mail lorsque j'utilise mailto:?
Est-il possible de définir l'objet / le contenu de l'e-mail lorsque j'utilise mailto:?
Réponses:
Oui, regardez tous les trucs et astuces avec mailto: http://www.angelfire.com/dc/html-webmaster/mailto.htm
Exemple d'objet mailto:
<a href="mailto:no-one@snai1mai1.com?subject=free chocolate">example</a>
mailto avec contenu:
<a href="mailto:no-one@snai1mai1.com?subject=look at this website&body=Hi,I found this website and thought you might like it http://www.geocities.com/wowhtml/">tell a friend</a>
Comme mentionné dans les commentaires, les deux subject
et body
doivent être échappés correctement. À utiliser encodeURIComponent(subject)
sur chacun, plutôt que de coder manuellement pour des cas spécifiques.
Comme Hoody l'a mentionné dans les commentaires, vous pouvez ajouter des sauts de ligne en ajoutant la séquence codée suivante dans la chaîne:
%0D%0A // one line break
<a href="mailto:manish@simplygraphix.com?subject=Feedback for
webdevelopersnotes.com&body=The Tips and Tricks section is great
&cc=anotheremailaddress@anotherdomain.com
&bcc=onemore@anotherdomain.com">Send me an email</a>
vous pouvez utiliser ce code pour définir le sujet, le corps, le cc, le bcc
Le mailto:
schéma d'URL est défini dans la RFC 2368 . De plus, la convention de codage des informations en URL et URI est définie dans RFC 1738 puis RFC 3986 . Ceux-ci prescrivent comment inclure les en body
- subject
têtes et dans une URL (URI):
mailto:infobot@example.com?subject=current-issue&body=send%20current-issue
Plus précisément, vous devez coder en pourcentage l'adresse e-mail, l'objet et le corps et les mettre dans le format ci-dessus. Le texte codé en pourcentage est légal pour une utilisation en HTML, mais cette URL doit être codée par entité pour une utilisation dans unhref
attribut, conformément à la norme HTML4 :
<a href="mailto:infobot@example.com?subject=current-issue&body=send%20current-issue">Send email</a>
Et le plus généralement, voici un simple script PHP qui code selon ce qui précède.
<?php
$encodedTo = rawurlencode($message->to);
$encodedSubject = rawurlencode($message->subject);
$encodedBody = rawurlencode($message->body);
$uri = "mailto:$encodedTo?subject=$encodedSubject&body=$encodedBody";
$encodedUri = htmlspecialchars($uri);
echo "<a href=\"$encodedUri\">Send email</a>";
?>
$uri = ...
: le &
devant subject
devrait être un?
Vous pouvez ajouter un objet ajouté à la commande mailto en utilisant l'une des méthodes suivantes. Ajoutez? Subject out mailto à la balise mailto.
<a href="mailto:test@example.com?subject=testing out mailto">First Example</a>
Nous pouvons également ajouter du texte dans le corps du message en ajoutant & body à la fin de la balise, comme indiqué dans l'exemple ci-dessous.
<a href="mailto:test@example.com?subject=testing out mailto&body=Just testing">Second Example</a>
En plus du corps, un utilisateur peut également taper & cc ou & bcc pour remplir les champs CC et BCC.
<a href="mailto:test@example.com?subject=testing out mailto&body=Just testing&cc=test1@example.com&bcc=test1@example.com">Third
Example</a>
J'ai créé un outil open source pour rendre cela facile. Entrez les chaînes que vous souhaitez et vous obtiendrez instantanément mailto
:
💌⚡️ Modèles d'e-mails complets dans un mailto
Je l'ai divisé en lignes distinctes pour le rendre un peu plus lisible.
<a href="
mailto:johndoe@gmail.com
?subject=My+great+email+to+you
&body=This+is+an+awesome+email
&cc=janedoe@gmail.com
&bcc=billybob@yahoo.com
">Click here to send email!</a>
voici l'astuce http://neworganizing.com/content/blog/tip-prepopulate-mailto-links-with-subject-body-text
<a href="mailto:tips@neworganizing.com?subject=Your+tip+on+mailto+links&body=Thanks+for+this+tip">tell a friend</a>
Oui:
Utilisez -le pour tester les éléments du formulaire mailto et l'encodage des liens.
Vous pouvez entrer le sujet, le corps (c'est-à-dire le contenu), etc. dans le formulaire, appuyer sur le bouton et voir le lien html mailto que vous pouvez coller dans votre page.
Vous pouvez même spécifier des éléments rarement connus et utilisés: cc, bcc, à partir de courriels.
[Test Zõne]
devient %5BTest%20Z%C3%B5ne%5D
, cela peut éviter certains robots indésirables).
&#x
(en évitant certains robots indésirables).
Oui, vous pouvez aimer ça:
mailto: email@host.com?subject=something
Notez qu'il n'est pas possible d'utiliser HTML dans le corps du message, selon la RFC 2368 :
Le hname spécial "body" indique que la valeur h associée est le corps du message. Le hname "body" doit contenir le contenu de la première partie texte / corps brut du message. L'URL mailto est principalement destinée à la génération de messages texte courts qui sont en fait le contenu du traitement automatique (tels que les messages "s'abonner" aux listes de diffusion), et non les corps MIME généraux.
Voici un extrait exécutable pour vous aider à générer des liens mailto: avec un sujet et un corps facultatifs.
function generate() {
var email = $('#email').val();
var subject = $('#subject').val();
var body = $('#body').val();
var mailto = 'mailto:' + email;
var params = {};
if (subject) {
params.subject = subject;
}
if (body) {
params.body = body;
}
if (params) {
mailto += '?' + $.param(params);
}
var $output = $('#output');
$output.val(mailto);
$output.focus();
$output.select();
document.execCommand('copy');
}
$(document).ready(function() {
$('#generate').on('click', generate);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="email" placeholder="email address" /><br/>
<input type="text" id="subject" placeholder="Subject" /><br/>
<textarea id="body" placeholder="Body"></textarea><br/>
<button type="button" id="generate">Generate & copy to clipboard</button><br/>
<textarea id="output">Output</textarea>
Si vous souhaitez ajouter du contenu html à votre e-mail, codez l'URL de votre code html pour le corps du message et incluez-le dans votre code de lien mailto, mais le problème est que vous ne pouvez pas définir le type d'e-mail à partir de ce lien du texte brut en html, le client utilisant le lien a besoin de son client de messagerie pour envoyer des e-mails html par défaut. Dans le cas où vous souhaitez tester, voici le code d'un lien mailto simple, avec une image enveloppée dans un lien (des URL de style angulaire ont été ajoutées pour la visibilité):
<a href="mailto:?body=%3Ca%20href%3D%22{{ scope.url }}%22%3E%3Cimg%20src%3D%22{{ scope.url }}%22%20width%3D%22300%22%20%2F%3E%3C%2Fa%3E">
Les balises html sont encodées en URL.