Mailto kullanarak e-postanın konusunu / içeriğini ayarlayabilir miyim?


Yanıtlar:


1459

Evet, mailto ile tüm ipuçlarına ve püf noktalarına bakın: http://www.angelfire.com/dc/html-webmaster/mailto.htm

mailto konu örneği:

<a href="mailto:no-one@snai1mai1.com?subject=free chocolate">example</a>

içeriği olan mailto:

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

Yorumlarda belirtildiği gibi, her ikisi de subjectve bodydüzgün bir şekilde kaçılmalıdır. encodeURIComponent(subject)Belirli durumlar için elle kodlama yerine her birinde kullanın .

Hoody'nin yorumlarda belirttiği gibi , dizeye şu kodlanmış diziyi ekleyerek satır sonları ekleyebilirsiniz:

%0D%0A // one line break

29
beden için HTML kullanmak mümkün mü?
Jiew Meng

18
Bu tamamen müşteriye özeldir. Genel durumda, hayır.
üçlü

4
Referans olarak: konuyu htmlescape etmek zorunda değilsiniz
Oscar Pérez

17
W3C'nin dizenizi şu kurallara göre kodlamanızı gerektirdiğini unutmayın: Karakterler NFC'de temsil edilmeli ve boşluklar% 20 olarak kullanılmalıdır.
gordie

96
Başka birinin merak etmesi durumunda,% 0D% 0A dizisini kullanarak vücuda satır sonları da ekleyebilirsiniz - cubetoon.com/2008/…
Hoody

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>

konu, gövde, cc, bcc ayarlamak için bu kodu kullanabilirsiniz


39

mailto:URL şeması tanımlanan RFC 2368 . Ayrıca, bilgileri URL'lere ve URI'lere kodlama kuralı, RFC 1738 ve ardından RFC 3986'da tanımlanmıştır . Bunlar bodyve subjectbaşlıklarının bir URL'ye (URI) nasıl ekleneceğini belirler :

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

Özellikle, e-posta adresini, konuyu ve gövdeyi yüzde olarak kodlamalı ve yukarıdaki biçime koymalısınız. Yüzde kodlu metnin HTML'de kullanımı yasaldır, ancak HTML4 standardınahref göre bu URL'nin bir özellikte kullanım için kodlanmış olması gerekir :

<a href="mailto:infobot@example.com?subject=current-issue&amp;body=send%20current-issue">Send email</a>

Ve en genel olarak, yukarıdakilere göre kodlayan basit bir PHP betiği.

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

Aşağıda, e-postanızın içinde bir URL varsa ve bu URL'nin kodlanması gereken şeyler varsa daha derin bir örnek verilmiştir: stackoverflow.com/questions/4744888/…
William Entriken

1
Ben satırda bir yazım hatası olduğunu düşünüyorum $uri = ...: &önünde bir subjectolmalıdır?
jost21

24

Aşağıdaki yollardan birini kullanarak mailto komutuna eklenen konuyu ekleyebilirsiniz. Konu dışına mailto etiketi eklemek için?

<a href="mailto:test@example.com?subject=testing out mailto">First Example</a>

Aşağıdaki örnekte gösterildiği gibi, etiketin sonuna & body ekleyerek iletinin gövdesine de metin ekleyebiliriz.

 <a href="mailto:test@example.com?subject=testing out mailto&body=Just testing">Second Example</a>

Bir kullanıcı gövdeye ek olarak, CC ve BCC alanlarını doldurmak için & cc veya & bcc yazabilir.

<a href="mailto:test@example.com?subject=testing out mailto&body=Just testing&cc=test1@example.com&bcc=test1@example.com">Third
    Example</a>

Mailto etiketine konu ekleme


13

Bunu kolaylaştırmak için açık kaynaklı bir araç oluşturdum. İstediğiniz dizeleri girin ve anında şunları elde edersiniz mailto:

mailto.now.sh

Bir mailto'da tam e-posta şablonu

resim açıklamasını buraya girin


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

1
Benim subjectmetin değil. Bu bir masa. Nasıl eklenir.
David

9

Biraz daha okunabilir hale getirmek için ayrı satırlara ayırdım.

<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
bu soru cevaplandı 5 yıl önce
varun aaruru

14
ve bugün bir şey
postalamak


7

Evet:

Mailto form öğelerini ve bağlantı kodlamasını denemek için bunu kullanın .

Forma konu, gövde (yani içerik) vb. Girebilir, düğmeye basabilir ve sayfanıza yapıştırabileceğiniz mailto html bağlantısını görebilirsiniz.

Nadiren bilinen ve kullanılan öğeleri bile belirtebilirsiniz: cc, bcc, e-postalardan.


Ayrıca bu href alan bestecisinin çok kullanışlı bir özelliği, tüm karakterleri onaltılı olarak kodlama yeteneğidir (örneğin: [Test Zõne]olur %5BTest%20Z%C3%B5ne%5D, bu bazı spam botlarından kaçınabilir).
Armfoot

Yani, tüm karakterleri kodlamayı seçerseniz, bunların tümü HTML gösterimine dönüştürülür &#x(bazı spam botlarından kaçınır).
Armfoot

4
Bu bağlantı öldü.
Bram Vanroy

6

Evet, bunu beğenebilirsiniz:

mailto: email@host.com?subject=something

2
Alanın orada olması gerektiğini düşünmüyorum?
nafg

bu boşluksuz olmalı.
Hassan Raza

5

RFC 2368'e göre, mesaj gövdesinde HTML kullanmanın mümkün olmadığını unutmayın :

"Body" özel hname, ilişkili hvalue'nun iletinin gövdesi olduğunu belirtir. "Gövde" adı, iletinin ilk metin / düz gövde kısmının içeriğini içermelidir. Mailto URL'si, genel MIME gövdeleri için değil, aslında otomatik işlemenin (posta listeleri için "abone olun" iletileri) içeriği olan kısa metin mesajlarının oluşturulması için tasarlanmıştır.

Kredi bilgileri: https://stackoverflow.com/a/13415988/1835519


2
Soru, konuyu ve içeriği nasıl ayarlayacağınızı sormaktır. Biçimlendirmeden bahsetmedi. O notta için yararlı bir şey bir cevap açıkken, ne hakkında biraz dışında kalan ise mümkün ve nasıl bunu başarmak için. Bu olmadan, bu bir yorum, cevap değil.
Quentin

Jure Bunu bu soruya bir cevap olarak verdiğiniz için gerçekten minnettarım. Bu yüzden Quentin bunun OP sorusuna cevap vermediğini düşünürken, bu yazıyı ortaya çıkaran şeyi aradığımı benim yanıtlıyor. Çok teşekkür ederim Jure!
user1567291

3

İşte isteğe bağlı konu ve gövde ile mailto: bağlantıları oluşturmanıza yardımcı olacak çalıştırılabilir bir snippet.

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

E-postanıza html içeriği eklemek istiyorsanız, url, ileti gövdesi için html kodunuzu kodlayın ve mailto bağlantı kodunuza ekleyin, ancak sorun, bu bağlantıdan e-posta türünü düz metinden html'ye ayarlayamamanızdır. bağlantıyı kullanan istemcinin varsayılan olarak html e-postaları göndermesi için posta istemcisine ihtiyacı vardır. Burada test etmek istediğinizde, basit bir mailto bağlantısının kodu, görseli bir bağlantıya sarılmıştır (görünürlük için açısal stil URL'leri eklenmiştir):

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

Html etiketleri url kodludur.


Ayrıca, gövdenin <a href> sadece href ve onunla son etiketi arasında bir metin olduğu bir örnek gönderebilir misiniz? Teşekkürler
user1567291

<a href="<same as above> "> Bu bağlantı metni </a> @ user1567291
serdarsenay

Bu işe yaramıyor. E-posta istemcisi, tüm html etiketlerini zengin metin belgesi olarak işlemek yerine metin olarak gösterecektir.
Ε Г И І И О
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.