Menu

HTML mailto-Link: E-Mail-Link mit Betreff, Text, CC und tel

Erstelle mit href="mailto:" einen Link, der eine neue E-Mail öffnet, füll Betreff, Text, cc und bcc aus, kodiere sie richtig und baue Links zum Anrufen mit tel: und sms:.

Diese Seite enthält ausführbare Editoren - bearbeiten, ausführen und Ausgabe sofort sehen.

Lass das href des Links mit mailto: und der Adresse beginnen. Ein Klick darauf öffnet im Mailprogramm des Lesers eine neue Nachricht an diese Adresse.

Die Vorschau öffnet keine anderen Apps: Ein Klick auf einen dieser Links zeigt dort die Adresse, die er öffnen würde. Auf einer echten Seite öffnet der erste eine neue E-Mail und der zweite startet auf einem Handy einen Anruf.

Nimm die Adresse selbst als Linktext. Ein Leser ohne eingerichtetes Mailprogramm (häufig auf Desktops, die Webmail im Browser nutzen) kann sie dann immer noch kopieren, und ein Link, auf dem nur „Schreib uns“ steht, lässt ihn im Regen stehen.

Betreff, Text, cc und bcc

Ein mailto-Link kann noch mehr von der Nachricht ausfüllen. Füg nach einem ? Parameter hinzu und verbinde sie mit &, wie bei einem URL-Query-String:

ParameterFüllt ausBeispiel
subjectDie Betreffzeile?subject=Order%20question
bodyDen Nachrichtentext&body=Hi%20there
ccEmpfänger in Kopie&cc=sales@example.com
bccEmpfänger in Blindkopie&bcc=log@example.com

Mehrere Empfänger kommen in den Adressteil, getrennt durch Kommas: mailto:ana@example.com,bob@example.com.

Die Werte müssen URL-kodiert sein: Ein Leerzeichen ist %20, ein Zeilenumbruch %0D%0A, & ist %26 und ? ist %3F. Das Skript in diesem Beispiel dekodiert jeden Link, damit du siehst, was beim Mailprogramm ankommt:

Der Betreff Order #123 muss als Order%20%23123 geschrieben werden: Ein nacktes # würde die URL an dieser Stelle beenden, und der Text ginge verloren. Nimm auch kein + für Leerzeichen. In einem mailto-Link ist + ein echtes Pluszeichen, und viele Mailprogramme zeigen es auch so an.

Von Hand zu kodieren ist fehleranfällig. encodeURIComponent erledigt das für dich. Tipp etwas in die Felder, und der Link darunter aktualisiert sich:

encodeURIComponent macht aus & ein %26 und aus einem Zeilenumbruch ein %0A; das replace macht aus Zeilenumbrüchen das Paar %0D%0A, das E-Mail erwartet. Lass den Adressteil, wie er getippt wurde: @ und , sind dort ohne Kodierung erlaubt.

tel: erzeugt einen Link zum Anrufen. Schreib die Nummer im href mit Ländervorwahl und ohne Leerzeichen; der sichtbare Text kann beliebig formatiert sein.

  • tel:+442079460958 funktioniert aus jedem Land. Eine lokale Nummer wie tel:02079460958 funktioniert nur für Anrufer innerhalb dieses Landes.
  • Bindestriche sind als Trenner erlaubt (tel:+1-555-123-4567); Leerzeichen gehören nicht zum Format, lass sie im href also weg.
  • sms: öffnet die Nachrichten-App. Eine Nachricht mit ?body= vorzubelegen funktioniert in vielen Apps, aber die Unterstützung ist unterschiedlich, verlass dich also nicht darauf.
  • Auf dem Desktop öffnet tel: eine Telefonie-App, falls eine installiert ist (etwa FaceTime oder ein Softphone), und macht sonst nichts.

Safari auf dem iPhone macht Telefonnummern in normalem Text von selbst zu Links. Wenn das etwas wie eine Bestellnummer kaputt macht, schalte es mit <meta name="format-detection" content="telephone=no"> ab.

Spam und E-Mail-Adressen

Eine Adresse in einem mailto-Link kann jeder Bot lesen, der die Seite herunterlädt. Tricks wie hello [at] example [dot] com oder das Zusammensetzen der Adresse per JavaScript halten manche einfachen Scraper ab, machen den Link aber auch schwerer zu benutzen. Ein Kontaktformular, erklärt unter HTML Formular, hält die Adresse ganz aus der Seite heraus. Für die meisten Websites ist ein guter Spamfilter im Postfach die einfachere Lösung.

Vermeide <form action="mailto:...">. Es hängt vom Mailprogramm des Lesers ab, verschickt die Felder URL-kodiert und schwer lesbar und gibt dir keine Bestätigung, dass überhaupt etwas gesendet wurde.

Häufige Fehler

  • mailto: vergessen. href="hello@example.com" ist ein relativer Link auf eine Seite, die wie die Adresse heißt.
  • Nicht kodierte Leerzeichen oder # in Betreff oder Text. Kodiere Werte mit %20, %23 oder encodeURIComponent.
  • + für Leerzeichen verwenden. Es erscheint als Pluszeichen.
  • Ein zweites ? statt &. Nur der erste Parameter folgt auf ?; die übrigen werden mit & verbunden.
  • „Schreib uns“ als einziger Text, womit Webmail-Nutzer nichts zum Kopieren haben.
  • Lokale Telefonnummern in tel:. Gib die Ländervorwahl mit an.

Häufig gestellte Fragen

Wie erstelle ich einen E-Mail-Link in HTML?

Nimm einen Link, dessen href mit mailto: und der Adresse beginnt: <a href="mailto:hello@example.com">hello@example.com</a>. Ein Klick darauf öffnet eine neue Nachricht im Standard-Mailprogramm des Lesers.

Wie füge ich einem mailto-Link einen Betreff hinzu?

Häng ihn als Query-Parameter nach ? an: mailto:hello@example.com?subject=Order%20question. Kodiere Leerzeichen als %20 und verbinde weitere Parameter mit &, zum Beispiel ?subject=Hi&body=Hello.

Wie schicke ich einen mailto-Link an mehrere Empfänger?

Trenn die Adressen mit Kommas: mailto:ana@example.com,bob@example.com. Für Kopien nimmst du die Parameter cc= und bcc=: mailto:ana@example.com?cc=bob@example.com&bcc=cy@example.com.

Wie mache ich eine Telefonnummer in HTML anklickbar?

Nimm einen tel:-Link mit der Nummer im internationalen Format: <a href="tel:+15551234567">+1 555 123 4567</a>. Auf Handys startet er einen Anruf; auf dem Desktop öffnet er die installierte Telefonie-App, falls es eine gibt.

Warum passiert bei meinem mailto-Link nichts?

Der Link übergibt die Adresse nur an das Standard-Mailprogramm. Wenn der Leser keines eingerichtet hat, was auf Desktops mit Webmail häufig ist, passiert nichts Brauchbares. Zeig die Adresse als Linktext an, damit man sie kopieren kann.

Coddy programming languages illustration

Lerne mit Coddy zu programmieren

LOS GEHT'S