Kann ich den Betreff / Inhalt der E-Mail mit mailto: festlegen?

890

Ist es möglich, den Betreff / Inhalt der E-Mail festzulegen, wenn ich mailto verwende:?

Jiew Meng
quelle
6
Sie können jeden Teil einer E-Mail festlegen. Hier ist ein Tool, das ich gebaut habe, um es ganz einfach zu machen: mailto.now.sh
Dawson B

Antworten:

1460

Ja, sehen Sie sich alle Tipps und Tricks mit mailto an: http://www.angelfire.com/dc/html-webmaster/mailto.htm

mailto Betreff Beispiel:

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

mailto mit Inhalt:

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

Wie in den Kommentaren erwähnt, müssen beide subjectund bodyordnungsgemäß entkommen werden. Verwenden Sie encodeURIComponent(subject)auf jedem, anstatt für bestimmte Fälle von Hand zu codieren.

Wie Hoody in den Kommentaren erwähnt hat, können Sie Zeilenumbrüche hinzufügen, indem Sie der Zeichenfolge die folgende codierte Sequenz hinzufügen:

%0D%0A // one line break
Haim Evgi
quelle
29
Ist es möglich, HTML für den Körper zu verwenden?
Jiew Meng
18
Das ist völlig kundenspezifisch. Im allgemeinen Fall nein.
Tripleee
4
Nur als Referenz: Sie müssen sich nicht mit dem Thema auseinandersetzen
Oscar Pérez
17
Beachten Sie, dass W3C erfordert, dass Sie Ihre Zeichenfolge nach den folgenden Regeln codieren: Zeichen sollten in NFC dargestellt werden und Leerzeichen sollten als% 20 maskiert werden.
Gordon
96
Falls sich jemand wundert, können Sie dem Körper auch Zeilenumbrüche hinzufügen, indem Sie die Sequenz% 0D% 0A verwenden - cubetoon.com/2008/…
Hoody
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>

Mit diesem Code können Sie subject, body, cc, bcc festlegen

oditiwebs.com
quelle
39

Das mailto:URL-Schema ist in RFC 2368 definiert . Die Konvention zum Codieren von Informationen in URLs und URIs ist auch in RFC 1738 und dann in RFC 3986 definiert . Diese schreiben vor, wie die bodyund subject-Header in eine URL (URI) aufgenommen werden sollen:

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

Insbesondere müssen Sie die E-Mail-Adresse, den Betreff und den Text in Prozent codieren und in das oben angegebene Format bringen. Prozentcodierter Text ist für die Verwendung in HTML zulässig. Diese URL muss jedoch für die Verwendung in einem hrefAttribut gemäß dem HTML4-Standard entitätscodiert sein :

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

Und im Allgemeinen ist hier ein einfaches PHP-Skript, das wie oben beschrieben codiert.

<?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
quelle
Hier ist ein viel tieferes Beispiel dafür, ob Ihre E-Mail eine URL enthält und diese URL Dinge enthält
William Entriken
1
Ich denke, es gibt einen Tippfehler in der Zeile $uri = ...: Der &vor subjectsollte ein?
jost21
24

Sie können dem Befehl mailto einen Betreff hinzufügen, indem Sie eine der folgenden Möglichkeiten anwenden. Fügen Sie dem mailto-Tag? Betreff out mailto hinzu.

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

Sie können dem Nachrichtentext auch Text hinzufügen, indem Sie am Ende des Tags & body hinzufügen, wie im folgenden Beispiel gezeigt.

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

Zusätzlich zum Text kann ein Benutzer auch & cc oder & bcc eingeben, um die Felder CC und BCC auszufüllen.

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

So fügen Sie einen Betreff zum mailto-Tag hinzu

niksmac
quelle
13

Ich habe ein Open-Source-Tool erstellt, um dies zu vereinfachen. Geben Sie die gewünschten Zeichenfolgen ein und Sie erhalten sofort Folgendes mailto:

mailto.now.sh

💌⚡️ Vorlage vollständiger E-Mails in einem Mailto

Geben Sie hier die Bildbeschreibung ein

Dawson B.
quelle
12
mailto:joe@company.com?subject=Your+subject
payne
quelle
1
Mein subjectist kein Text. Das ist ein Tisch. Wie man das hinzufügt.
David
9

Ich habe es in separate Zeilen aufgeteilt, um es etwas lesbarer zu machen.

<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>
sehr schön
quelle
1
Diese Frage wurde vor 5 Jahren beantwortet
Varun Aaruru
14
und es wird noch heute verwendet, wenn Sie etwas
mailen möchten
7

Ja:

Verwenden Sie diese Option, um mit Mailto-Formularelementen und der Linkcodierung zu experimentieren.

Sie können Betreff, Text (dh Inhalt) usw. in das Formular eingeben, auf die Schaltfläche klicken und den Mailto-HTML-Link anzeigen, den Sie in Ihre Seite einfügen können.

Sie können sogar Elemente angeben, die selten bekannt sind und verwendet werden: cc, bcc, aus E-Mails.

woz
quelle
Ein sehr nützliches Merkmal dieses href-Feldkomponisten ist auch die Fähigkeit, alle Zeichen hexadezimal zu codieren (z. B.: [Test Zõne]Wird %5BTest%20Z%C3%B5ne%5D, dies kann einige Spam-Bots vermeiden).
Armfoot
Ich meine, wenn Sie alle Zeichen codieren, werden sie alle in die HTML-Notation konvertiert &#x(wobei einige Spam-Bots vermieden werden).
Armfoot
4
Dieser Link ist tot.
Bram Vanroy
6

Ja, das kann dir gefallen:

mailto: email@host.com?subject=something
MeanEYE
quelle
2
Ich denke nicht, dass der Raum dort sein sollte?
Nafg
Dies sollte ohne Platz sein.
Hassan Raza
5

Beachten Sie, dass gemäß RFC 2368 kein HTML im Nachrichtentext verwendet werden kann :

Der spezielle hname "body" gibt an, dass der zugehörige hvalue der Body der Nachricht ist. Der Name "body" sollte den Inhalt für den ersten Text- / Klartextteil der Nachricht enthalten. Die Mailto-URL ist in erster Linie für die Generierung von Kurztextnachrichten vorgesehen, die tatsächlich den Inhalt der automatischen Verarbeitung darstellen (z. B. "Abonnieren" von Nachrichten für Mailinglisten), nicht für allgemeine MIME-Textkörper.

Bildnachweis: https://stackoverflow.com/a/13415988/1835519

Jure Sah
quelle
2
Die Frage ist, wie das Thema und der Inhalt eingestellt werden sollen. Die Formatierung wurde nicht erwähnt. Während das eine nützliche Sache zu Hinweis auf eine Antwort ist, verlassen Sie etwas über, was ist möglich und wie es zu erreichen. Ohne das ist dies ein Kommentar, keine Antwort.
Quentin
Jure, ich weiß es wirklich zu schätzen, dass Sie dies als Antwort auf diese Frage angegeben haben, da dies genau das ist, was ich herausfinden musste und mich fragte. Während Quentin der Meinung ist, dass dies die OP-Frage nicht beantwortet, beantwortet es meine, nach der ich gesucht habe, und brachte diesen Beitrag hervor. Vielen Dank Jure!
Benutzer1567291
3

Hier ist ein ausführbares Snippet, mit dem Sie Mailto: -Links mit optionalem Betreff und Text generieren können.

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

Wenn Sie Ihrer E-Mail HTML-Inhalte hinzufügen möchten, codieren Sie Ihren HTML-Code für den Nachrichtentext per URL und fügen Sie ihn in Ihren Mailto-Link-Code ein. Das Problem ist jedoch, dass Sie den E-Mail-Typ von diesem Link nicht von Klartext zu HTML festlegen können. Der Client, der den Link verwendet, benötigt seinen E-Mail-Client, um standardmäßig HTML-E-Mails zu senden. Für den Fall, dass Sie hier testen möchten, finden Sie den Code für einen einfachen Mailto-Link mit einem Bild, das in einen Link eingeschlossen ist (URLs im Winkelstil wurden zur besseren Sichtbarkeit hinzugefügt):

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

Die HTML-Tags sind URL-codiert.

Serdarsenay
quelle
Können Sie auch ein Beispiel posten, in dem der Körper <a href> nur die href und einen Text zwischen sich und dem End-Tag enthält? Danke
user1567291
<a href="< wie oben> "> Dies ist der Linktext </a> @ user1567291
Serdarsenay
Das funktioniert nicht. Der E-Mail-Client zeigt nur alle HTML-Tags als Text an, anstatt sie als Rich-Text-Dokument zu verarbeiten.
О Г И І І О