
# E-posta şablonları

`keenauth_email_template` kaynağı özelleştirilebilir bir e-posta şablonunun yayındaki içeriğini yönetir: bir aile (örneğin `verify_email`) ve bir dil. Startup planı ve üstü gerekir (aksi halde `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"
}
```

| Öznitelik | Açıklama |
|---|---|
| `family`, `locale` | Yuva. İkisinden biri değişirse başka bir şablon yönetilir. |
| `subject` | Liquid, düz metin, en çok 200 karakter, satır sonu yok. |
| `html` | Liquid HTML parçası, en çok 256 KiB. |
| `text_body` | Liquid düz metin gövdesi (zorunlu), en çok 64 KiB. |
| `from_name` | İsteğe bağlı gönderen görünen adı, en çok 64 karakter. Boşsa uygulama ya da ortam adı kullanılır. |
| `overwrite_pending_draft` | İsteğe bağlı, varsayılan `false`. Aşağıya bakın. |
| `version`, `latest_version` | Salt okunur. Yayındaki sürüm ve yuvanın en yeni sürümü. |

Sunucu içeriği yazarken ve yayınlarken denetler: Liquid sandbox'ı, dengeli HTML, yasak yapılar ve ailenin gerektirdiği `{{ link }}` ya da `{{ code }}` değerinin hem HTML'de hem düz metinde bulunması.

## Değişiklik nasıl uygulanır

1. `PUT` içeriği yeni bir taslak sürüm olarak yazar. `If-Match`, son okumadaki yuvanın en yeni sürümüdür (sürümü olmayan yuvada `"0"`).
2. `POST …:publish` o sürümü yayınlar. Önceki sürüm arşivlenir ve geçmişte kalır (son 50 sürüm ve yayındaki sürüm saklanır).

Kaynak **yayındaki** sürümü okur. Panoda yayınlanan ya da geri alınan bir sürüm sonraki `plan`'da sapma olarak görünür.

## Bekleyen taslaklar

Yayındakinden yeni bir taslak (panoda kaydedilmiş ya da başarısız bir yayından kalmış) sessizce ezilmez:

- Yapılandırmanızla aynı içeriğe sahip taslak, yeni sürüm yazılmadan yayınlanır. Başarısız bir yayın bu yolla yeniden denenir.
- Farklı bir taslak değişikliği `Pending email template draft` hatasıyla durdurur. Taslağı panoda yayınlayın ya da inceleyin; ya da üzerine daha yeni bir sürüm yazmak için `overwrite_pending_draft = true` verin. Eski taslak geçmişte kalır ama artık yayınlanamaz.
- Bekleyen taslak varken `plan` uyarı yazar.

`plan` ile `apply` arasında şablona başkası yazarsa API `412` döner ve hiçbir şey değişmez. `plan`'ı yeniden çalıştırın.

## Oluşturma, içe aktarma ve silme

- Oluşturma, aynı içerikli yayındaki şablonu sahiplenir. Yuvada başka içerikli yayında bir şablon varsa sağlayıcı onu ezmez: `tofu import keenauth_email_template.verify verify_email/en` ile içe aktarın ve planı inceleyin.
- Silme kaynağı yalnız durumdan düşürür. API'de silme ucu yoktur; yayındaki şablon ve geçmişi değişmez. Sistem varsayılanına dönmek API ile mümkün değildir; gönderileni değiştirmek için şablonu düzenleyin ya da daha önce yayınlanmış bir sürüme `keenauth email-templates rollback` ile dönün.
