
# E-Mail-Vorlagen

Die Ressource `keenauth_email_template` verwaltet den veröffentlichten Inhalt einer anpassbaren E-Mail-Vorlage: eine Familie (zum Beispiel `verify_email`) in einer Sprache. Sie benötigt den Startup-Tarif oder höher (sonst `403 plan_feature_unavailable`).

```terraform
resource "keenauth_email_template" "verify" {
  family    = "verify_email"
  locale    = "en"
  subject   = "Confirm your email"
  html      = "<p>Confirm your email address: <a href=\"{{ link }}\">Confirm</a></p>"
  text_body = "Confirm your email address: {{ link }}"
  from_name = "Acme"
}
```

| Attribut | Beschreibung |
|---|---|
| `family`, `locale` | Der Slot. Eine Änderung von einem der beiden verwaltet eine andere Vorlage. |
| `subject` | Liquid, Klartext, bis zu 200 Zeichen, ohne Zeilenumbrüche. |
| `html` | Liquid-HTML-Fragment, bis zu 256 KiB. |
| `text_body` | Liquid-Klartextkörper (erforderlich), bis zu 64 KiB. |
| `from_name` | Optionaler Anzeigename des Absenders, bis zu 64 Zeichen. Ist er nicht gesetzt, wird der Name der Anwendung oder der Umgebung verwendet. |
| `overwrite_pending_draft` | Optional, Standard ist `false`. Siehe unten. |
| `version`, `latest_version` | Nur lesbar. Die veröffentlichte Version und die neueste Version des Slots. |

Der Server prüft den Inhalt beim Schreiben und erneut beim Veröffentlichen: Liquid-Sandbox, ausgeglichenes HTML, verbotene Konstrukte sowie das für die Familie erforderliche `{{ link }}` oder `{{ code }}` sowohl im HTML als auch im Textkörper.

## Wie eine Änderung angewendet wird

1. `PUT` schreibt den Inhalt als neue Entwurfsversion. `If-Match` ist die neueste Version des Slots aus der letzten Lesung (`"0"` für einen Slot ohne Versionen).
2. `POST …:publish` veröffentlicht diese Version. Die vorherige Version wird archiviert und bleibt im Verlauf erhalten (die neuesten 50 Versionen plus die veröffentlichte Version werden aufbewahrt).

Die Ressource liest die **veröffentlichte** Version. Eine im Dashboard veröffentlichte oder zurückgesetzte Version erscheint beim nächsten `plan` als Abweichung.

## Ausstehende Entwürfe

Ein Entwurf, der neuer ist als die veröffentlichte Version (im Dashboard gespeichert oder durch eine fehlgeschlagene Veröffentlichung hinterlassen), wird niemals stillschweigend überschrieben:

- Ein Entwurf mit demselben Inhalt wie Ihre Konfiguration wird veröffentlicht, ohne eine weitere Version zu schreiben. Das wiederholt auch eine fehlgeschlagene Veröffentlichung.
- Ein anderer Entwurf lässt die Änderung mit `Pending email template draft` fehlschlagen. Veröffentlichen oder prüfen Sie ihn im Dashboard, oder setzen Sie `overwrite_pending_draft = true`, um eine neuere Version darüber zu schreiben. Der alte Entwurf bleibt im Verlauf, kann aber nicht mehr veröffentlicht werden.
- `plan` gibt eine Warnung aus, solange ein ausstehender Entwurf existiert.

Wenn zwischen `plan` und `apply` jemand die Vorlage ändert, antwortet die API mit `412`, und nichts wird geändert. Führen Sie `plan` erneut aus.

## Anlegen, Import und Löschen

- Ein Anlegen übernimmt eine veröffentlichte Vorlage mit demselben Inhalt. Hat der Slot bereits eine veröffentlichte Vorlage mit anderem Inhalt, überschreibt der Provider sie nicht. Importieren Sie sie mit `tofu import keenauth_email_template.verify verify_email/en` und prüfen Sie den Plan.
- Destroy entfernt nur die Ressource aus dem State. Die API kennt kein Löschen, daher bleiben die veröffentlichte Vorlage und ihr Verlauf unverändert. Die Rückkehr zur Systemstandardvorlage ist über die API nicht verfügbar. Um zu ändern, was versendet wird, bearbeiten Sie die Vorlage oder führen Sie `keenauth email-templates rollback` für eine frühere veröffentlichte Version aus.
