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
- Misafir captive portal'da e-posta adresini girer.
- AnchorSpot, yapılandırılmış SMTP sunucusu üzerinden OTP kodu içeren e-posta gönderir.
- Misafir gelen kutusundaki kodu portal'a girer.
- 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ı | Host | Port | TLS |
|---|---|---|---|
| Google Workspace | smtp.gmail.com | 587 | STARTTLS |
| Microsoft 365 | smtp.office365.com | 587 | STARTTLS |
| SendGrid | smtp.sendgrid.net | 587 | STARTTLS |
| Yandex | smtp.yandex.com | 465 | SSL |
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:
| Alan | Açıklama | Örnek |
|---|---|---|
| Konu | E-posta başlığı | Wi-Fi Bağlantı Kodunuz |
| Gövde | HTML veya düz metin | OTP kodu dahil özel mesaj |
| Logo URL | Marka görseli | https://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
- Spam/önemsiz klasörünü kontrol edin.
NAC_SMTP_HOSTve port ayarlarını doğrulayın.- Sunucu günlüklerinde
SMTP connection refusedhatası varsa firewall kurallarını inceleyin. - 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.
:::