Posso definir o assunto / conteúdo do email usando mailto :?

890

É possível definir o assunto / conteúdo do email quando eu uso mailto :?

Jiew Meng
fonte
2
relacionados css-tricks.com/snippets/html/mailto-links
Adrien Seja
6
Você pode definir todas as partes de um email. Aqui está uma ferramenta que eu construído para torná-lo simples mortos: mailto.now.sh
Dawson B

Respostas:

1460

Sim, consulte todas as dicas e truques com mailto: http://www.angelfire.com/dc/html-webmaster/mailto.htm

mailto exemplo de assunto:

<a href="mailto:[email protected]?subject=free chocolate">example</a>

mailto com conteúdo:

<a href="mailto:[email protected]?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>

Como mencionado nos comentários, ambos subjecte bodydevem ser escapados corretamente. Use encodeURIComponent(subject)em cada um deles, em vez de codificar manualmente para casos específicos.

Como Hoody mencionado nos comentários, você pode adicionar quebras de linha adicionando a seguinte sequência codificada na sequência:

%0D%0A // one line break
Haim Evgi
fonte
29
é possível usar HTML para o corpo?
Jiew Meng
18
Isso é totalmente específico do cliente. No caso geral, não.
Tripleee
4
Apenas como uma referência: você não precisa entender o assunto #
Oscar Pérez
17
Observe que o W3C exige que você codifique sua sequência seguindo essas regras: Os caracteres devem ser representados no NFC e os espaços devem ser escapados como% 20.
gordie
96
No caso de alguém está se perguntando você também pode adicionar quebras de linha para o corpo usando o% 0D seqüência% 0A - cubetoon.com/2008/...
com capuz
123
<a href="mailto:[email protected]?subject=Feedback for 
webdevelopersnotes.com&body=The Tips and Tricks section is great
&[email protected]
&[email protected]">Send me an email</a>

você pode usar esse código para definir assunto, corpo, cc, cco

oditiwebs.com
fonte
39

O mailto:esquema de URL é definido na RFC 2368 . Além disso, a convenção para codificar informações em URLs e URIs é definida na RFC 1738 e depois na RFC 3986 . Eles prescrevem como incluir os cabeçalhos bodye subjectem um URL (URI):

mailto:infobot@example.com?subject=current-issue&body=send%20current-issue

Especificamente, você deve codificar em porcentagem o endereço de email, assunto e corpo e colocá-los no formato acima. O texto codificado em porcentagem é legal para uso em HTML, no entanto, este URL deve ser codificado por entidade para uso em um hrefatributo, de acordo com o padrão HTML4 :

<a href="mailto:[email protected]?subject=current-issue&amp;body=send%20current-issue">Send email</a>

E, geralmente, aqui está um script PHP simples que codifica de acordo com o acima.

<?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>";
?>
William Entriken
fonte
Aqui está um exemplo muito mais profundo de se o seu email tem um URL e esse URL tem coisas que precisam ser codificadas: stackoverflow.com/questions/4744888/…
William Entriken
1
Acho que há um erro de digitação na linha $uri = ...: The &na frente de subjectdeve ser um?
jost21
24

Você pode adicionar um assunto adicionado ao comando mailto usando uma das seguintes maneiras. Adicionar? Assunto mailto à tag mailto.

<a href="mailto:[email protected]?subject=testing out mailto">First Example</a>

Também podemos adicionar texto ao corpo da mensagem adicionando & body ao final da tag, como mostrado no exemplo abaixo.

 <a href="mailto:[email protected]?subject=testing out mailto&body=Just testing">Second Example</a>

Além do corpo, um usuário também pode digitar & cc ou & bcc para preencher os campos CC e BCC.

<a href="mailto:[email protected]?subject=testing out mailto&body=Just testing&[email protected]&[email protected]">Third
    Example</a>

Como adicionar assunto à tag mailto

niksmac
fonte
13

Eu criei uma ferramenta de código aberto para facilitar isso. Digite as seqüências desejadas e você obterá instantaneamente mailto:

mailto.now.sh

Template️ Modelo de emails completos em um mailto

insira a descrição da imagem aqui

Dawson B
fonte
12
mailto:joe@company.com?subject=Your+subject
Payne
fonte
1
Meu subjectnão é texto. É uma mesa. Como adicionar isso.
David
9

Divido-o em linhas separadas para torná-lo um pouco mais legível.

<a href="

    mailto:[email protected]

    ?subject=My+great+email+to+you

    &body=This+is+an+awesome+email

    &[email protected]

    &[email protected]

">Click here to send email!</a>
quemeful
fonte
1
esta pergunta foi respondida há 5 anos
varun aaruru
14
e ainda é usado hoje quando você quer enviar algo
quemeful
7

Sim:

Use isso para experimentar elementos de formulário mailto e codificação de links.

Você pode inserir assunto, corpo (ou seja, conteúdo) etc. no formulário, clicar no botão e ver o link mailto html que pode colar em sua página.

Você pode até especificar elementos que raramente são conhecidos e usados: cc, cco, a partir de e-mails.

woz
fonte
Também um recurso muito útil desse compositor de campo href é a capacidade de codificar todos os caracteres para hexadecimal (por exemplo: [Test Zõne]torna - se %5BTest%20Z%C3%B5ne%5D, isso pode evitar alguns bots de spam).
precisa saber é o seguinte
Quero dizer, se você optar por codificar todos os caracteres, todos serão convertidos em notação HTML &#x(evitando alguns bots de spam).
precisa saber é o seguinte
4
Este link está morto.
Bram Vanroy 5/09
6

Sim, você pode assim:

mailto: email@host.com?subject=something
MeanEYE
fonte
2
Eu não acho que o espaço deveria estar lá?
nafg
isso deve ficar sem espaço.
Hassan Raza
5

Observe que não é possível usar HTML no corpo da mensagem, de acordo com a RFC 2368 :

O hname especial "corpo" indica que o hvalue associado é o corpo da mensagem. O nome do "corpo" deve conter o conteúdo da primeira parte do texto / corpo sem formatação da mensagem. O URL mailto destina-se principalmente à geração de mensagens curtas de texto que são realmente o conteúdo do processamento automático (como mensagens de "inscrição" para listas de discussão), não corpos MIME gerais.

Crédito: https://stackoverflow.com/a/13415988/1835519

Jure Sah
fonte
2
A questão é perguntar como definir o assunto e o conteúdo. Não mencionou a formatação. Embora isso seja útil para anotar em uma resposta, você deixou de lado o que é possível e como alcançá-lo. Sem isso, isso é um comentário, não uma resposta.
Quentin
Jure: Eu realmente aprecio que você coloque isso como resposta a esta pergunta, pois é exatamente isso que eu precisava descobrir e estava me perguntando. Portanto, embora Quentin pense que isso não responde à pergunta do OP, ele responde ao meu que eu estava procurando e que trouxe este post. Muito obrigado Jure!
user1567291
3

Aqui está um trecho executável para ajudá-lo a gerar links mailto: com assunto e corpo opcionais.

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>

congusbongus
fonte
1

Se você deseja adicionar conteúdo html ao seu e-mail, codifique seu código html para o corpo da mensagem e inclua-o no código do link mailto, mas o problema é que você não pode definir o tipo de e-mail desse link de texto sem formatação para html, o cliente que usa o link precisa do cliente de email para enviar emails em HTML por padrão. Caso você queira testar aqui, está o código de um link mailto simples, com uma imagem agrupada em um link (URLs de estilo angular adicionados para visibilidade):

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

As tags html são codificadas por URL.

serdarsenay
fonte
Você também pode postar um exemplo em que o corpo <a href> apenas possui o href e um texto entre ele e a tag end? Graças
user1567291
<a href="<mesmo como acima> "> Este é o texto do link </a> @ user1567291
serdarsenay 15/12
Isso não funciona. O cliente de email apenas mostrará todas as tags html como texto, em vez de processá-lo como um documento rich text.
Ε Г И І И О