406 Stimmen

mailto-Link mit HTML-Text

Ich habe ein paar mailto Links in einem HTML-Dokument.

<a href="mailto:etc...">

Kann ich einen HTML-formatierten Textkörper in die mailto: Teil des href ?

<a href="mailto:me@me.com?subject=Me&body=<b>ME</b>">Mail me</a>

Beachten Sie, dass es (2016) unter iOS völlig in Ordnung ist, die <i> y <b> Tags für einfache kursive und fette Formatierungen.

478voto

Alfonso Marin Punkte 4918

Wie Sie sehen können in RFC 6068 ist dies überhaupt nicht möglich:

Das Besondere <hfname> "body" zeigt an, dass der zugehörige <hfvalue> ist der Text der Nachricht. Der Wert des Feldes "body" ist gedacht für den Inhalt des ersten Text/Plain-Teils der Nachricht enthalten Nachricht enthalten. Das Pseudo-Header-Feld "body" ist in erster Linie gedacht für die Generierung von kurzen Textnachrichten für die automatische Verarbeitung (wie wie "subscribe"-Nachrichten für Mailinglisten), nicht für allgemeine MIME Körper.

120voto

Oliver Pearmain Punkte 18779

Es ist zwar NICHT möglich, den E-Mail-Text in HTML zu formatieren, aber Sie können Zeilenumbrüche einfügen, wie bereits vorgeschlagen wurde.

Wenn Sie in der Lage sind, Javascript zu verwenden, dann könnte "encodeURIComponent()" wie unten beschrieben von Nutzen sein...

var formattedBody = "FirstLine \n Second Line \n Third Line";
var mailToLink = "mailto:x@y.com?body=" + encodeURIComponent(formattedBody);
window.location.href = mailToLink;

101voto

Quentin Punkte 850700

Nein, das ist überhaupt nicht möglich.

83voto

Matthew Punkte 1436

Es ist nicht ganz das, was Sie wollen, aber es ist möglich, mit modernem Javascript eine EML-Datei auf dem Client zu erstellen und diese in das Dateisystem des Benutzers zu streamen, der dann eine Rich-E-Mail mit HTML in seinem E-Mail-Programm, wie Outlook, öffnen sollte:

https://stackoverflow.com/a/27971771/8595398

Hier ist ein jsfiddle einer E-Mail mit Bildern und Tabellen: https://jsfiddle.net/seanodotcom/yd1n8Lfh/

HTML

<!-- https://jsfiddle.net/seanodotcom/yd1n8Lfh -->
<textarea id="textbox" style="width: 300px; height: 600px;">
To: User <user@domain.demo>
Subject: Subject
X-Unsent: 1
Content-Type: text/html

<html>
<head>
<style>
    body, html, table {
        font-family: Calibri, Arial, sans-serif;
    }
    .pastdue { color: crimson; }
    table {
        border: 1px solid silver;
        padding: 6px;
    }
    thead {
        text-align: center;
        font-size: 1.2em;
        color: navy;
        background-color: silver;
        font-weight: bold;
    }
    tbody td {
        text-align: center;
    }
</style>
</head>
<body>
<table width=100%>
    <tr>
        <td><img src="http://www.laurell.com/images/logo/laurell_logo_storefront.jpg" width="200" height="57" alt=""></td>
        <td align="right"><h1><span class="pastdue">PAST DUE</span> INVOICE</h1></td>
    </tr>
</table>
<table width=100%>
    <thead>
        <th>Invoice #</th>
        <th>Days Overdue</th>
        <th>Amount Owed</th>
    </thead>
    <tbody>
    <tr>
        <td>OU812</td>
        <td>9</td>
        <td>$4395.00</td>
    </tr>
    <tr>
        <td>OU812</td>
        <td>9</td>
        <td>$4395.00</td>
    </tr>
    <tr>
        <td>OU812</td>
        <td>9</td>
        <td>$4395.00</td>
    </tr>
    </tbody>
</table>
</body>
</html>
</textarea> <br>
<button id="create">Create file</button><br><br>
<a download="message.eml" id="downloadlink" style="display: none">Download</a>

Javascript

(function () {
var textFile = null,
  makeTextFile = function (text) {
    var data = new Blob([text], {type: 'text/plain'});
    if (textFile !== null) {
      window.URL.revokeObjectURL(textFile);
    }
    textFile = window.URL.createObjectURL(data);
    return textFile;
  };

  var create = document.getElementById('create'),
    textbox = document.getElementById('textbox');
  create.addEventListener('click', function () {
    var link = document.getElementById('downloadlink');
    link.href = makeTextFile(textbox.value);
    link.style.display = 'block';
  }, false);
})();

73voto

Andy Punkte 2111

Ich habe dies verwendet und es scheint mit Outlook zu funktionieren, nicht mit html, aber Sie können den Text mit Zeilenumbrüchen formatieren, zumindest wenn der Körper als Ausgabe hinzugefügt wird.

<a href="mailto:email@address.com?subject=Hello world&body=Line one%0DLine two">Email me</a>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X