İçeriğe geç

E-posta ve webhook ile bildirim

Panelde projeni aç → Gelen. Burada iki tür adres oluşturursun. Her ikisi de normal bildirim gibi kuyruğa girer, kotandan düşer ve cihaz kurallarına uyar.

Yeni adres sana in+…@pmail.pushbell.app biçiminde bir adres verir. Bu adrese gelen e-posta bildirim olur:

  • Konu başlık, metin içerik olur. Düz metin bölümü yoksa HTML okunur metne çevrilir.
  • İlk görsel ek bildirim görseli olur.
  • Date başlığı bildirimin zamanı olur.
  • Aynı e-posta (aynı Message-ID) iki kez gelirse tek bildirim olur.

Faturalarını, sistem uyarılarını ya da form e-postalarını bu adrese yönlendir.

  • İzinli göndericiler: satır başına bir adres ya da @alan.com. Boşsa herkes gönderebilir. İzinsiz gönderenin e-postası bildirim olmaz.
  • Tip, öncelik, ses: adresin varsayılanları.
  • Kurallar: sırayla denenir, ilk tutan kural uygulanır.
    • Koşul: konu, metin ya da gönderen bir metni içerir ya da bir regex’e uyar.
    • Eylem: tip, öncelik ve ses seç ya da Bildirim gönderme.
    • Regex’in adlı grupları tipin şablonunda değişken olur. Örneğin konu Sipariş #(?P<no>\d+): (?P<tutar>[\d.,]+ TL) kuralıyla eşleşirse tipin başlığında {{no}} ve {{tutar}} kullanılabilir (Bildirim tipleri).
  • Örnekle dene: gönderen, konu ve metni yapıştır. Hangi bildirimin gideceğini (ya da neden gitmeyeceğini) gösterir, bir şey göndermez.
  • Adresi değiştir: adres sızdıysa yeni adres verir; eski adres hemen çalışmayı bırakır.

E-posta en fazla 10 MB olabilir. Metin paketindeki karakter sınırına kısaltılır, tamamı uygulamada açılınca da görünmez. Tanınmayan adrese gelen e-posta göndericiye geri döner.

Yeni webhook bir adres verir. Bu adresi diğer servisin webhook ayarına yapıştır, her olay bildirim olur. Adres gizlidir: API anahtarı istemez, adresi bilen bildirim gönderebilir. Gönderen servis imza destekliyorsa İmza sırrı’nı gir; imzası tutmayan istek bildirim olmaz. Sır bir daha gösterilmez.

Şablon Nereye yapıştırılır Bildirim
Stripe Workbench → Webhooks → Uç nokta ekle; imza sırrı whsec_… Ödeme alındı (tutar, e-posta, kasa sesi), fatura ödendi, iade, itiraz ve başarısız ödeme (yüksek öncelik), abonelik
GitHub Repo → Settings → Webhooks; content type application/json, Secret Push (commit sayısı, dal, ilk satır), pull request, issue, release, başarısız iş akışı (yüksek öncelik), yıldız
Shopify Ayarlar → Bildirimler → Webhook’lar (JSON); imza anahtarı aynı sayfada Yeni sipariş, sipariş ödendi / iptal, iade, yeni müşteri
WooCommerce Ayarlar → Gelişmiş → Webhook’lar; Gizli (harf ve rakam kullan) Yeni sipariş, sipariş durumu, yeni müşteri
Grafana Alerting → Contact points → Webhook; HMAC başlığı X-Grafana-Alerting-Signature, zaman başlığı X-Grafana-Alerting-Timestamp Uyarı (yüksek öncelik), düzeldi
Uptime Kuma Bildirim kur → Webhook, gövde application/json (imza yok) Çöktü (yüksek öncelik), düzeldi, deneme
Genel Kendi sistemin Alan eşlemesiyle ya da gövdedeki title, message, url, priority alanlarıyla

Aynı olay (Stripe olay kimliği, GitHub / Shopify / WooCommerce teslim kimliği, genelde Idempotency-Key başlığı) 24 saat içinde tekrar gelirse ikinci bildirim olmaz.

Alan eşlemede {{ $.yol }} yerleri JSON gövdesinden doldurulur: $.order.id, $.items[0].name, $['özel alan'].

Başlık: Yeni başvuru: {{ $.form.name }}
Metin: {{ $.fields[0].value }} ({{ $.email }})

Eşleme boşsa gövdedeki title, message (ya da text), url ve priority alanları kullanılır. Gövde JSON değilse olduğu gibi metin olur. Gövde en fazla 100 KB olabilir.

İmza istersen gövdenin HMAC-SHA256’sını onaltılık olarak X-PushBell-Signature: sha256=<imza> başlığıyla gönder:

Terminal window
body='{"title":"Yedek bitti","message":"34 GB"}'
sig=$(printf '%s' "$body" | openssl dgst -sha256 -hmac "$SIR" -hex | sed 's/.* //')
curl -X POST "https://api.pushbell.app/v1/hooks/…" -H "Content-Type: application/json" \
-H "X-PushBell-Signature: sha256=$sig" -d "$body"

Örnekle dene başlıkları ve gövdeyi yapıştırıp sonucu gösterir. İmza sırrı varsa örnekte de denetlenir.