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


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:no-one@snai1mai1.com?subject=free chocolate">example</a>

mailto com conteúdo:

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

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

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

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


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:infobot@example.com?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>";
?>

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:test@example.com?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:test@example.com?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:test@example.com?subject=testing out mailto&body=Just testing&cc=test1@example.com&bcc=test1@example.com">Third
    Example</a>

Como adicionar assunto à tag mailto


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


12
mailto:joe@company.com?subject=Your+subject

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

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.


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

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


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>


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.


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.
Ε Г И І И О
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.