Gesamte Doku

Start

  1. 01Erste Schritte
  2. 02Installation
  3. 03Tracking

Funktionen

  1. 04Das Dashboard
  2. 05Ziele
  3. 06Kurzlinks
  4. 07KI-Quellen und Agenten
  5. 08E-Mail-Berichte
  6. 09Stündlicher Check
  7. 10Frag deine KI

Referenz

  1. 11Konfiguration
  2. 12HTTP-API

Plattformen

  1. 13Eigenständiger Server
  2. 14PHP
  3. 15WordPress
  4. 16Drupal
  5. 17Craft CMS
  6. 18Python
  7. 19Rails
  8. 20Ruby
  9. 21Go
  10. 22Java
  11. 23.NET
  12. 24Elixir
  13. 25Rust

Vertrauen

  1. 26Datenschutz

Funktionen

E-Mail-Berichte

Runlight verschickt wöchentliche oder monatliche Zusammenfassungen über deinen eigenen E-Mail-Dienst, in der Sprache jedes Lesers.

Runlight kann jede Woche oder jeden Monat eine Zusammenfassung einer Website per E-Mail verschicken. Jede Zusammenfassung enthält den Satz als Überschrift, die sechs Zahlen im Vergleich zum Zeitraum davor, Top-Seiten, Quellen und Länder sowie Conversions mit ihrem Umsatz. Sie wird von deiner eigenen Adresse gesendet, über einen E-Mail-Dienst, den du schon nutzt.

1. Den E-Mail-Dienst einrichten

Wähle unter Einstellungen, E-Mail-Dienst einen Dienst und gib seine Schlüssel und die Adresse ein, von der Berichte kommen. Test senden prüft, ob es funktioniert. Ein E-Mail-Dienst bedient jede Website der Installation.

Dienst Was er braucht
Amazon SES Region, Zugriffsschlüssel-ID und geheimen Zugriffsschlüssel (ein IAM-Benutzer, dem ses:SendEmail erlaubt ist)
Resend API-Schlüssel
Postmark Server-API-Token und optional den Nachrichtenstream
SendGrid API-Schlüssel
Mailgun Versanddomain, API-Schlüssel und Region (US oder EU)
Brevo API-Schlüssel
Mailjet API-Schlüssel und geheimen Schlüssel
MailerSend API-Token
SparkPost API-Schlüssel und Region (US oder EU)
SMTP Host, Port, Sicherheit (STARTTLS, TLS oder keine) und optional Benutzername und Passwort
Webhook Eine URL, an die Runlight jede E-Mail als JSON sendet, und optional ein Signaturgeheimnis

Die Absenderadresse muss eine sein, von der dein Dienst dich senden lässt, meist auf einer Domain, die du dort bestätigt hast.

Schlüssel werden verschlüsselt gespeichert, mit einem Schlüssel, der aus RUNLIGHT_SECRET abgeleitet wird (oder ohne dieses aus RUNLIGHT_TOKEN), und nie an den Browser zurückgeschickt. Lass ein Feld also leer, um seinen gespeicherten Schlüssel zu behalten. Ist keine der beiden Variablen gesetzt, werden Schlüssel so gespeichert, wie du sie eingibst, und die Einstellungen weisen dich darauf hin.

Du kannst den Dienst auch im Code festlegen, indem du mail übergibst. Die Einstellungen zeigen ihn dann an, können ihn aber nicht ändern.

ts

runlight({
  store,
  mail: { service: "resend", apiKey: process.env.RESEND_API_KEY!, from: "reports@example.com", fromName: "Runlight" },
});

Über deine App senden

Eine App, die schon E-Mails verschickt, etwa ein CMS, kann stattdessen ihren eigenen Mailer als mail übergeben. Das ist eine send-Funktion, die jede Nachricht entgegennimmt (to, from, fromName, subject, html, text und headers), dazu die Absenderadresse und der Absendername sowie via, der Name, den die Einstellungen dafür anzeigen. Berichte, Test-E-Mails, Einladungen und Anmeldelinks gehen dann darüber, und die Einstellungen zeigen seinen Namen und seine Absenderadresse.

Der Mailer der App ist eine Voreinstellung. Der Eigentümer kann in den Einstellungen trotzdem einen anderen Dienst wählen, der dann an seine Stelle tritt, und wenn dieser Dienst entfernt wird, geht es zurück zum Mailer der App. Die Plugins für WordPress, Drupal und Craft übergeben ihren, wenn auf der Website ein echter Mailer eingerichtet ist.

ts

runlight({
  store,
  mail: { from: "hello@example.com", fromName: "Example", via: "My app", send: (message) => mailer.send(message) },
});

In Go ist der Mailer eine eigene Option, AppMailer, mit Send, From, FromName und Via, und in Rust heißt er app_mailer. Ruby und Elixir nennen den Absendernamen from_name, und PHP nimmt ein Callable als send.

Übergib mailServices mit den IDs der Dienste, die die Einstellungen anbieten dürfen, um die anderen auszublenden, wie es das WordPress-Plugin mit SMTP tut. Ein früher gespeicherter Dienst, der nicht auf der Liste steht, zählt als keiner, sodass wieder der eigene Mailer der App sendet.

Der Webhook

Der Webhook bekommt einen POST, dessen JSON-Body to, from, fromName, subject, html, text und headers enthält. Ist ein Signaturgeheimnis gesetzt, enthält der Header x-runlight-signature den Text sha256=, gefolgt vom HMAC-SHA256 des rohen Bodys in Hex. Die URL muss https verwenden (oder localhost sein).

2. Empfänger der Berichte hinzufügen

Füge unter Einstellungen, E-Mail-Berichte eine Adresse mit ihrem Rhythmus (wöchentlich oder monatlich) und der Sprache hinzu, in der die E-Mail sein soll. Jetzt ein Beispiel senden schickt den neuesten Bericht sofort, einmal pro Minute für jede Adresse. Von einem verbundenen eigenständigen Server aus geht für die ganze Website alle zehn Minuten ein Beispiel raus.

  • Wochenberichte decken Montag bis Sonntag ab und gehen montags ab 8 Uhr raus.
  • Monatsberichte decken den Kalendermonat ab und gehen am 1. ab 8 Uhr raus.

Beide nutzen die Zeitzone der Website, und jeder Zeitraum wird einmal verschickt. Wenn das Senden scheitert, versucht es der nächste Check erneut.

3. Den Check planen

Berichte werden vom stündlichen Check verschickt, deshalb geht nichts raus, bis er geplant ist.

Abbestellen

Jede E-Mail hat einen Abbestell-Link und die List-Unsubscribe-Header, die Mail-Apps für ihren eigenen Abbestell-Button nutzen. Der Link öffnet eine Seite mit einem Button, sodass ein Mail-Scanner, der Links öffnet, niemanden versehentlich abmelden kann.