Verify

Kurumsal Güvenlik Gelişmiş E-posta, DNS & Altyapı Analiz Motoru

E-posta Doğrulama ve Risk Analizi

Alıcıya e-posta göndermeden posta kutusu varlığını, servis sağlayıcı altyapısını, SPF / DMARC / DKIM / PTR güvenlik kayıtlarını ve spam riskini gerçek zamanlı analiz edin.

Hızlı Testler:
Yazım Hatası Olasılığı Tespit Edildi
Bunu mu demek istediniz: ?
GÜVEN DERECESİ DELIVERABLE
100
/ 100
Teslim Edilebilir
E-posta adresi aktif ve posta kutusu geçerli.
ALT DURUM: MailboxExists
HEDEF E-POSTA ADRESİ
Servis Sağlayıcı (ESP):
Birincil MX Ağ Geçidi:
Gravatar
Gerçek İnsan Profili Onaylı GRAVATAR
Bu adrese bağlı aktif genel avatar ve dijital kimlik bulundu.
Şüpheli Bot / Anlamsız Karakter:
Park Edilmiş Domain (Satılık / Boşta): Bu domain aktif bir posta hizmeti sunmuyor, alan adı satış/park altyapısında (Sedo/Bodis/GoDaddy vb.). E-posta teslim edilemez.
Anti-Tarpit Koruması: Hedef sunucunun bilinçli geciktirme tuzağı (tarpitting) tespit edildi ve güvenle izole edildi.
İşlem Süresi: 0 ms UTF-8 / IDN Uyumlu
DNS Güvenlik Otoritesi & Şifreleme Standartları
Domain Güvenlik Raporu
1. SPF Sender Policy Framework
Aktif (Geçerli)
Alan adı adına e-posta göndermeye yetkili sunucuların resmi listesi.
v=spf1 ...
2. DMARC Domain-based Message Authentication & Reporting
REJECT
Sahte/spoofing ve kimlik avı (phishing) e-postalarını engelleme politikası.
v=DMARC1; p=reject ...
3. DKIM DomainKeys Identified Mail (Dijital İmza)
Doğrulandı
E-postaların yolda değiştirilmediğini doğrulayan kriptografik açık anahtar.
v=DKIM1; k=rsa ...
4. PTR & Şifreleme Ters DNS (Reverse DNS) & MTA-STS TLS Desteği
PTR Doğrulandı
MX sunucu IP'sinin alan adıyla eşleşmesi (FCrDNS) ve zorunlu TLS şifreleme desteği.
PTR: Doğrulanıyor...
5. DNSBL Anti-Spam Kara Liste Kontrolü (RBL / DNSBL)
Temiz (Listede Değil)
Spamhaus ZEN, SpamCop ve Barracuda veritabanlarında IP/Domain itibarı.
DNSBL: Taranıyor...
Detaylı Kontrol Raporu
10 Katmanlı Derin Analiz
RFC 5322 Sözdizimi
Format kurallarına tam uygun.
MX Kayıtları
Aktif posta sunucusu mevcut.
Servis Sağlayıcı
Kurumsal / Bireysel Altyapı.
Posta Kutusu / Gateway
Sunucu alıcıyı doğruladı.
Geçici Domain
Kara listede değil, kalıcı.
Catch-All Durumu
Genel alıcı kapalı.
Hesap Türü
Bireysel kullanıcı hesabı.
Sunucu Yanıtı
250 OK / Gateway Yanıtı.
İnsan Profili (Gravatar)
Genel avatar ve kimlik sorgusu.
Doğal İsim Formatı
Shannon entropi & bot testi.

// Canlı SMTP Soket Diyaloğu & Teşhis:
// Ham REST API JSON Yanıtı:

                                

Geliştirici REST API & Entegrasyon Kılavuzu

Bu dokümantasyonu doğrudan yazılımcınıza iletebilir, CRM, ERP, e-ticaret ve kayıt formlarınızla dakikalar içinde entegre edebilirsiniz.

Geliştirici Notu: Aşağıdaki kod örneklerinde yer alan fe_live_ORNEK_API_ANAHTARI bir şablon anahtardır. Projelerinizde canlı doğrulamaya geçmeden önce lütfen WordPress Yönetim Paneli (Hosteva > REST API) üzerinden size tahsis edilen kurumsal API anahtarını kullanınız.

1. Temel Bağlantı ve Yetkilendirme

Base URL https://www.fastexpress.com.tr/wp-json/fastmail/v1
İçerik Türü (Content-Type) application/json; charset=UTF-8
Yetkilendirme (Header) X-Api-Key: fe_live_ORNEK_API_ANAHTARI
Alternatif Query Parametresi ?api_key=fe_live_ORNEK_API_ANAHTARI (Opsiyonel, header tercih edilir)
POST https://www.fastexpress.com.tr/wp-json/fastmail/v1/verify

Tek bir e-posta adresini RFC sözdizimi, MX, canlı SMTP mailbox ping, SPF, DMARC, DKIM, PTR ve kurumsal ESP seviyesinde tam analiz eder.

İstek Gövdesi (JSON Body):

{
  "email": "destek@sirketadi.com",
  "smtp_check": true,
  "catch_all_check": true
}
Parametre Tip Zorunlu? Varsayılan Açıklama
email string Evet - Doğrulanacak hedef e-posta adresi.
smtp_check boolean Hayır true Alıcı posta kutusuna canlı soket pingi atılsın mı?
catch_all_check boolean Hayır true Rastgele posta kutusuyla catch-all testi yapılsın mı?

Başarılı Yanıt Modeli (HTTP 200 OK):

{
  "success": true,
  "data": {
    "email": "destek@sirketadi.com",
    "normalized_email": "destek@sirketadi.com",
    "status": "deliverable",
    "score": 90,
    "syntax": {
      "valid": true,
      "user": "destek",
      "domain": "sirketadi.com",
      "domain_puny": "sirketadi.com",
      "is_utf8": false,
      "reason": null
    },
    "domain_info": {
      "valid_domain": true,
      "has_mx": true,
      "mx_records": [
        { "host": "sirketadi-com.mail.protection.outlook.com", "priority": 10 }
      ],
      "primary_mx": "sirketadi-com.mail.protection.outlook.com",
      "mx_ip": "104.47.54.36",
      "ptr_record": "mail-eop.protection.outlook.com",
      "ptr_valid": true,
      "esp": {
        "name": "Microsoft 365 (Exchange Online)",
        "tier": "Kurumsal / Ücretli SaaS"
      },
      "security": {
        "has_spf": true,
        "spf_raw": "v=spf1 include:spf.protection.outlook.com -all",
        "has_dmarc": true,
        "dmarc_policy": "REJECT",
        "dmarc_raw": "v=DMARC1; p=reject; rua=mailto:dmarc@sirketadi.com",
        "has_dkim": true,
        "dkim_selector": "selector1",
        "dkim_raw": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3...",
        "has_bimi": false,
        "has_mta_sts": true
      },
      "is_disposable": false,
      "is_free": false
    },
    "account_info": {
      "is_role_based": true,
      "role": "destek"
    },
    "smtp": {
      "checked": true,
      "connected": false,
      "mailbox_exists": false,
      "is_catch_all": false,
      "auth_required": false,
      "firewall_shield": true,
      "response_code": 250,
      "response_message": "Kurumsal Microsoft 365 Güvenlik Kalkanı devrede.",
      "log": [
        "[C] sirketadi-com.mail.protection.outlook.com:25 bağlantısı deneniyor...",
        "[i] Microsoft 365 Inbound Gateway devrede.",
        "[i] Alan adı MX, SPF ve DMARC kayıtlarıyla kurumsal olarak onaylandı."
      ]
    },
    "suggestion": null,
    "execution_time_ms": 340.52
  }
}
POST https://www.fastexpress.com.tr/wp-json/fastmail/v1/verify-batch

Tek bir HTTP isteği ile 20 adede kadar e-postayı toplu olarak hızlıca doğrulamak için kullanılır.

İstek Gövdesi (JSON):

{
  "emails": [
    "musteri1@sirketadi.com",
    "ahmet@gmail.com",
    "sahte@mailinator.com"
  ],
  "smtp_check": true
}

3. Durum Kodları & Güven Skorları

Durum (status) Güven Skoru Açıklama Önerilen Yazılım Aksiyonu
DELIVERABLE 80 - 100 E-posta formatı doğru, MX ve DNS aktif, posta kutusu onaylı veya kurumsal SPF/DMARC korumalı. Gönderim Güvenli (Kayıt kabul edilir)
RISKY 50 - 79 Catch-all açık, rol hesabı (info@, admin@) veya geçici greylisting gecikmesi. Dikkatli Gönderim / Şartlı Kabul
UNDELIVERABLE 0 - 49 Posta kutusu yok (550), MX kaydı yok veya tek kullanımlık (temp-mail) sahte hesap. Gönderim Yapmayın (Hard Bounce)
UNKNOWN - Sunucu zaman aşımına uğradı veya yanıt vermedi. Daha sonra tekrar deneyin.

HTTP Hata Yanıtları:

HTTP Kodu Hata Nedeni Çözüm
400 Bad Request email parametresi gönderilmedi veya hatalı JSON. JSON gövdesini kontrol edin.
401 Unauthorized X-Api-Key başlığı eksik veya geçersiz. Yönetim panelinden geçerli bir anahtar alın.
403 Forbidden API Anahtarı yönetici tarafından pasife alınmış. Paneli kontrol edin veya yeni anahtar üretin.
429 Too Many Requests Günlük istek limiti doldu. Limiti yönetim panelinden artırın veya ertesi günü bekleyin.

4. Hazır Entegrasyon Kodları

Projenize göre dilediğiniz dili seçip kodu anında kopyalayarak entegrasyonu tamamlayabilirsiniz:

curl -X POST "https://www.fastexpress.com.tr/wp-json/fastmail/v1/verify" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: fe_live_ORNEK_API_ANAHTARI" \
  -d '{
    "email": "destek@sirketadi.com",
    "smtp_check": true,
    "catch_all_check": true
  }'
<?php
/**
 * E-posta Doğrulama REST API Entegrasyonu
 */
$apiUrl = 'https://www.fastexpress.com.tr/wp-json/fastmail/v1/verify';
$apiKey = 'fe_live_ORNEK_API_ANAHTARI';
$targetEmail = 'destek@sirketadi.com';

$payload = json_encode([
    'email'           => $targetEmail,
    'smtp_check'      => true,
    'catch_all_check' => true
]);

$ch = curl_init($apiUrl);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => [
        'Content-Type: application/json',
        'X-Api-Key: ' . $apiKey
    ],
    CURLOPT_POSTFIELDS     => $payload,
    CURLOPT_TIMEOUT        => 12
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode === 200) {
    $result = json_decode($response, true);
    $status = $result['data']['status']; // 'deliverable', 'risky', 'undeliverable'
    $score  = $result['data']['score'];  // 0 - 100

    if ($status === 'deliverable') {
        echo "✓ E-posta güvenli, kayıt tamamlandı! (Skor: {$score})";
    } elseif ($status === 'risky') {
        echo "⚠ E-posta riskli kabul edilebilir (Skor: {$score})";
    } else {
        echo "✕ Geçersiz e-posta adresi! Gönderim reddedildi.";
    }
} elseif ($httpCode === 429) {
    echo "Hata: Günlük istek kotası doldu!";
} else {
    echo "API Hatası: HTTP " . $httpCode;
}
import requests

API_URL = "https://www.fastexpress.com.tr/wp-json/fastmail/v1/verify"
API_KEY = "fe_live_ORNEK_API_ANAHTARI"

headers = {
    "Content-Type": "application/json",
    "X-Api-Key": API_KEY
}

payload = {
    "email": "destek@sirketadi.com",
    "smtp_check": True,
    "catch_all_check": True
}

try:
    response = requests.post(API_URL, json=payload, headers=headers, timeout=12)
    if response.status_code == 200:
        data = response.json().get("data", {})
        print(f"Durum: {data.get('status')} | Skor: {data.get('score')}")
        print(f"ESP Sağlayıcı: {data.get('domain_info', {}).get('esp', {}).get('name')}")
    elif response.status_code == 429:
        print("Hata: Günlük istek kotası doldu!")
    else:
        print("Hata Kodu:", response.status_code, response.text)
except requests.exceptions.RequestException as e:
    print("Bağlantı hatası:", e)
// JavaScript (Modern Fetch API / Node.js 18+)
async function verifyEmail(email) {
  const url = "https://www.fastexpress.com.tr/wp-json/fastmail/v1/verify";
  const apiKey = "fe_live_ORNEK_API_ANAHTARI";

  try {
    const res = await fetch(url, {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        "X-Api-Key": apiKey
      },
      body: JSON.stringify({
        email: email,
        smtp_check: true,
        catch_all_check: true
      })
    });

    if (res.status === 429) {
      throw new Error("Günlük istek kotası doldu (HTTP 429)!");
    }

    const json = await res.json();
    if (json.success) {
      const { status, score, domain_info } = json.data;
      console.log(`Durum: ${status}, Skor: ${score}/100`);
      console.log(`Sağlayıcı: ${domain_info.esp.name}`);
      return json.data;
    }
  } catch (err) {
    console.error("Doğrulama hatası:", err.message);
  }
}

verifyEmail("destek@sirketadi.com");
using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;

class Program {
    static async Task Main() {
        var url = "https://www.fastexpress.com.tr/wp-json/fastmail/v1/verify";
        var apiKey = "fe_live_ORNEK_API_ANAHTARI";

        using var client = new HttpClient();
        client.DefaultRequestHeaders.Add("X-Api-Key", apiKey);

        var payload = new {
            email = "destek@sirketadi.com",
            smtp_check = true,
            catch_all_check = true
        };

        var content = new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, "application/json");
        var response = await client.PostAsync(url, content);

        if (response.IsSuccessStatusCode) {
            var body = await response.Content.ReadAsStringAsync();
            Console.WriteLine("Sonuç: " + body);
        } else {
            Console.WriteLine("Hata: " + response.StatusCode);
        }
    }
}
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"time"
)

func main() {
	apiUrl := "https://www.fastexpress.com.tr/wp-json/fastmail/v1/verify"
	apiKey := "fe_live_ORNEK_API_ANAHTARI"

	payload := map[string]interface{}{
		"email":           "destek@sirketadi.com",
		"smtp_check":      true,
		"catch_all_check": true,
	}
	jsonData, _ := json.Marshal(payload)

	req, _ := http.NewRequest("POST", apiUrl, bytes.NewBuffer(jsonData))
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("X-Api-Key", apiKey)

	client := &http.Client{Timeout: 12 * time.Second}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Println("Hata:", err)
		return
	}
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)
	fmt.Println("HTTP Kodu:", resp.StatusCode)
	fmt.Println("Yanıt:", string(body))
}

4. Tek Satır JavaScript Doğrulama Widget'ı

Embeddable Widget

Herhangi bir web sitesi, kayıt formu, bülten aboneliği veya ödeme sayfasına yalnızca tek satır <script> etiketi ekleyerek gerçek zamanlı canlı e-posta doğrulaması, yazım hatası (typo) düzeltme rozetleri ve sahte hesap engelleme özelliğini aktif edebilirsiniz.

<!-- HTML formunuzun hemen altına veya <body> sonuna ekleyin -->
<script
  src="https://www.fastexpress.com.tr/wp-content/themes/hosteva/verify-mail/fe-verify-widget.js"
  data-api-key="fe_live_ORNEK_API_ANAHTARI"
  data-target="#email"
  data-quality="extreme"
  defer>
</script>

Widget Konfigürasyon Parametreleri (Data Attributes)

Parametre Varsayılan Açıklama
data-api-key Zorunlu Fast Express tarafından panelden tahsis edilen kurumsal API anahtarınız.
data-target input[type="email"] Doğrulanacak input öğesinin CSS seçicisi (Örn: #email, .user-email).
data-quality extreme Doğrulama derinliği: extreme (varsayılan), high veya standard.
data-debounce 800 Kullanıcı yazmayı bıraktıktan sonra API isteği göndermek için beklenecek milisaniye.
data-api-url Otomatik Özel reverse proxy veya endpoint kullanmak isterseniz belirtebilirsiniz.

JavaScript Özel Event Dinleme (feEmailVerified)

Doğrulama tamamlandığında input öğesi üzerinde tetiklenen custom event ile form submit butonunu pasif/aktif yapabilirsiniz:

// Doğrulama sonucunu JavaScript ile yakalama
document.querySelector('#email').addEventListener('feEmailVerified', function(e) {
    const result = e.detail;
    console.log('Durum:', result.status);        // deliverable | risky | undeliverable
    console.log('Alt Durum:', result.sub_status); // MailboxExists, MailExchangerIsParked vb.
    console.log('Skor:', result.score);           // 0 - 100

    // Örnek: Geçersiz adreslerde kayıt butonunu kilitleme
    const submitBtn = document.querySelector('#registerBtn');
    if (submitBtn) {
        submitBtn.disabled = (result.status === 'undeliverable');
    }
});

5. Durum ve Alt Durum (Sub-Status) Kod Referansı

Sistemimiz uluslararası e-posta doğrulama standartlarına uygun olarak 4 ana durum (status) ve granüler alt durum kodları (sub_status) üretir. Bu kodlar sayesinde kararlarınızı matematiksel netlikte verebilirsiniz.

Ana Durum Alt Durum (sub_status) Tipik Skor Açıklama ve Aksiyon Tavsiyesi
deliverable MailboxExists 90 - 100 Hedef sunucu e-postayı ve posta kutusunu onayladı (250 OK). Güvenle gönderim yapılabilir.
risky MailboxIsCatchAll 65 - 75 Domain genel alıcı (catch-all) modunda, her gelen postayı kabul ediyor; spesifik kutu garantisi yok.
risky RoleBasedAccount 60 - 70 Şirket departman veya rol hesabı (info@, satis@, admin@). Toplu pazarlamada şikayet riski yüksektir.
risky FirewallProtected 75 - 85 Kurumsal güvenlik kalkanı (Microsoft 365, Proofpoint vb.) pingi filtreledi; SPF/DMARC ve MX sağlıklı.
risky ServerTemporaryUnavailable 50 - 65 Hedef sunucu geçici koruma / greylisting uyguladı (451/421). Daha sonra tekrar denenmelidir.
undeliverable MailboxDoesNotExist 0 - 20 Hedef posta sunucusu kullanıcıyı kesin olarak reddetti (550 User Unknown / Invalid Recipient).
undeliverable MailExchangerIsParked 0 Alan adı satılık veya park hizmetinde (Sedo, Bodis, Dan.com vb.). Aktif posta kutusu barındırmaz.
undeliverable MailExchangerIsWellKnownDea 0 - 10 Tek kullanımlık geçici posta servisi (Mailinator, Temp-Mail vb.). Kayıtlar engellenmelidir.
undeliverable DnsblBlacklisted 0 - 30 Gönderici veya hedef sunucu IP/domaini Spamhaus ZEN / RBL kara listesinde listelenmiş.
undeliverable DomainDoesNotExist 0 Domain adı kayıtlı değil veya aktif DNS / MX ağ geçidi bulunmuyor.
undeliverable SyntaxError 0 E-posta formatı RFC 5322 kurallarına aykırı (hatalı karakterler veya eksik yapı).
unknown ServerIsTarpit 40 - 50 Hedef sunucu bilinçli olarak bağlantıyı donduruyor (tarpitting). Sistem koruması tetiklendi.
unknown SmtpConnectionTimeout 40 - 50 Hedef sunucuya ayrılan süre zarfında yanıt alınamadı.

6. Kalite Seviyeleri (Quality Levels)

Sistemimizde doğrulama hassasiyetini ve teslim edilebilirlik oranını maksimize etmek için varsayılan tarama modu extreme (ekstrem derinlik) olarak ayarlanmıştır:

extreme (Ekstrem Derinlik)
VARSAYILAN
10 Saniye + Anti-Tarpit + 2 Geçiş Greylist

Genişletilmiş soket zaman aşımı, derin anti-tarpit koruması ve en yüksek doğruluk sağlar. Milyonluk e-posta bültenleri öncesi temizlik ve kesin doğruluk için standarttır.

high (Yüksek Kalite)
2 Geçişli + Greylist Bypass (3 - 5 saniye)

Sunucu 451/421 greylisting ertelemesi verirse otomatik olarak bekler ve ikinci denemeyi gerçekleştirir. CRM ve pazarlama listeleri için önerilir.

standard (Standart Hızlı)
Hızlı Tek Geçiş (1 - 2 saniye)

Kullanıcı kayıt formları ve anlık widget için tek geçişli hızlı kontrol.