Ana içeriğe geç

E-posta Doğrulama

E-posta doğrulama, misafirlerin e-posta adresleri aracılığıyla kimlik doğrulamasını sağlar. Kurumsal etkinlikler, konferanslar ve telefon numarasının tercih edilmediği ortamlar için idealdir. Telefon numarası gerektirmediğinden bazı misafirler için daha düşük sürtünme yaratır.

Akış

Misafir → E-posta girer → OTP e-postası gönderilir → Kodu girer → Bağlantı sağlanır
  1. Misafir captive portal'da e-posta adresini girer.
  2. AnchorSpot, yapılandırılmış SMTP sunucusu üzerinden OTP kodu içeren e-posta gönderir.
  3. Misafir gelen kutusundaki kodu portal'a girer.
  4. Kod doğrulanır; MAC adresi kabul listesine eklenir, oturum başlatılır.

API Akışı

OTP Talebi

curl -X POST https://<portal-host>/api/v1/hotspot-portal/email/request \
-H "Content-Type: application/json" \
-d '{
"email": "misafir@example.com",
"mac": "aa:bb:cc:dd:ee:ff",
"ssid": "Konferans-WiFi"
}'

Başarılı yanıt:

{ "status": "sent", "expires_in": 300 }

OTP Doğrulama

curl -X POST https://<portal-host>/api/v1/hotspot-portal/email/verify \
-H "Content-Type: application/json" \
-d '{
"email": "misafir@example.com",
"code": "193047",
"mac": "aa:bb:cc:dd:ee:ff"
}'

Başarılı yanıt:

{ "status": "authorized", "session_id": "sess_xyz789" }

SMTP Konfigürasyonu

E-posta doğrulama, ortam değişkenleri veya yönetim konsolu üzerinden yapılandırılır.

Ortam Değişkenleri

NAC_SMTP_HOST=smtp.example.com
NAC_SMTP_PORT=587
NAC_SMTP_FROM=noreply@sirketim.com
NAC_SMTP_USER=smtp-kullanici
NAC_SMTP_PASS=gizli-sifre
NAC_SMTP_TLS=true # STARTTLS kullan
NAC_SMTP_TIMEOUT_SEC=10 # Bağlantı zaman aşımı

:::tip TLS Ayarları Port 587 ile STARTTLS, port 465 ile SSL/TLS kullanılır. Port 25 yalnızca dahili relay sunucuları için önerilir; bulut ortamlarında genellikle bloke edilir. :::

Yaygın SMTP Sağlayıcıları

SağlayıcıHostPortTLS
Google Workspacesmtp.gmail.com587STARTTLS
Microsoft 365smtp.office365.com587STARTTLS
SendGridsmtp.sendgrid.net587STARTTLS
Yandexsmtp.yandex.com465SSL

E-posta Şablonu Özelleştirme

Yönetim konsolunda Ayarlar → Kimlik Doğrulama → E-posta → Şablon bölümünden e-posta içeriği özelleştirilebilir.

Değiştirilebilir alanlar:

AlanAçıklamaÖrnek
KonuE-posta başlığıWi-Fi Bağlantı Kodunuz
GövdeHTML veya düz metinOTP kodu dahil özel mesaj
Logo URLMarka görselihttps://sirketim.com/logo.png
Renk temasıBirincil renk (HEX)#1A73E8

Şablon değişkenleri:

{{otp_code}} — Doğrulama kodu
{{expiry_min}} — Kodun geçerliliği (dakika)
{{guest_email}} — Misafirin e-posta adresi
{{venue_name}} — Mekân adı (konsol'dan)
{{ssid}} — Bağlandığı ağ adı

SSID Bazlı Etkinleştirme

E-posta doğrulama her SSID için ayrı ayrı etkinleştirilebilir ya da devre dışı bırakılabilir.

Ağlar → [SSID Adı] → Kimlik Doğrulama Yöntemleri ekranından:

[x] SMS OTP
[x] E-posta OTP
[ ] WhatsApp OTP

Birden fazla yöntem seçildiğinde misafir hangi kanalı kullanacağını seçebilir.

:::info Kullanım Senaryoları E-posta doğrulama özellikle şu durumlarda önerilir:

  • Konferans ve fuarlar — katılımcılar genellikle iş e-postaları ile kayıt olmuştur; e-posta tutarlı bir kimlik sağlar.
  • Kurumsal misafir ağları — çalışan olmayan ziyaretçiler için telefon gerektirmeyen kimlik doğrulama.
  • Uzun süreli etkinlikler — e-posta adresi tekrar kullanım analizi için daha değerlidir. :::

Hız Sınırlama

Aynı e-posta adresine 15 dakika içinde en fazla 3 OTP gönderilebilir. Spam gönderimini engellemek için uygulanan bu limit konsoldan ayarlanabilir.

Sorun Giderme

E-posta Gelmiyor

  1. Spam/önemsiz klasörünü kontrol edin.
  2. NAC_SMTP_HOST ve port ayarlarını doğrulayın.
  3. Sunucu günlüklerinde SMTP connection refused hatası varsa firewall kurallarını inceleyin.
  4. SMTP kimlik bilgilerinin doğruluğunu ayrı bir istemci (Thunderbird, telnet) ile test edin.

TLS Hatası

Error: self signed certificate in certificate chain

Kurumsal bir SMTP sunucusunda öz imzalı sertifika kullanılıyorsa NAC_SMTP_REJECT_UNAUTHORIZED=false ortam değişkenini ekleyin. Üretim ortamında geçerli bir sertifika kullanılması önerilir.

:::warning Güvenlik Uyarısı SMTP şifrelerini .env dosyasına düz metin olarak yazarken dosyanın versiyon kontrolüne (git) dahil edilmediğinden emin olun. :::