Korumalı alanda deneyin → Her uç nokta, onu canlı hizmet üzerinde çalıştıran bir düğmeyle birlikte. Burada hiçbir şey için anahtar gerekmez, bu nedenle bu sayfadan gönderdiğiniz bir istek gerçektir: gerçek bir adres ayırır ve sayılır.
Döngü
İki istek ve bir e-posta. Üçüncü çağrı yalnızca analiz birkaç saniye sürdüğü için vardır.
Bir adres ayırın
Gelen kutusu uç noktasına POST isteği gönderin. Tam olarak bir ileti kabul eden ve bir saat içinde süresi dolan bir adresin yanı sıra diğer her şeyin anahtar olarak kullandığı kısa adı alırsınız.
Gerçek iletiyi bu adrese gönderin
SMTP üzerinden, kampanyayı gönderecek platformdan gönderin. Kontrollerin yarısı gönderim platformunuzun eklediği üstbilgileri okur, bu nedenle elle oluşturulan bir ileti yanlış şeyi ölçer.
Durumu yoklayın, ardından raporu okuyun
Durum uç noktası birkaç yüz bayttır ve tam raporu almaya değip değmediğini bildirir. Raporun kendisi birkaç bin satırdır.
# 1. reserve a single-use address curl -sX POST 'https://email-spam-tester.com/api/v1/inbox?lang=en' { "address": "test-<slug>@t.email-spam-tester.com", "slug": "<slug>", "expires_at": "2026-01-01T12:00:00Z" }
# 2. send your message to that address, then poll curl -s 'https://email-spam-tester.com/api/v1/tests/<slug>/status' { "slug": "<slug>", "analysis_status": "checks_ready", "ai_status": "running", "checks_done": 39, "checks_total": 39 }
# 3. read the report once analysis_status is checks_ready curl -s 'https://email-spam-tester.com/api/v1/tests/<slug>' { "report_url": "https://email-spam-tester.com/t/<slug>", "score_ours": 86.4, "score_compat": 9.2, "subscores": {"auth": 100.0, "infra_spam": 78.1, "content": 92.0, "compliance": 75.0}, "complete": true, "checks": [ { "id": "auth.dmarc", "status": "warn", "title": "DMARC result", "summary": "DMARC passes, but the policy is p=none.", "weight_ours": -4.0, "evidence": {"policy": "none", "aligned": "dkim"}, "citations": {"standards": [{"title": "RFC 9989 §4.7", "quote": "..."}]} } ], "fixes": [ {"id": "dmarc-enforce", "gain_ours": 4.0, "gain_compat": 0.0, "fix": {"title": "Move DMARC to quarantine", "severity": "medium"}} ] }
Kimlik Doğrulama
Yoktur. Talep edilecek anahtar, ayarlanacak başlık veya oluşturulacak hesap yoktur. Aldığınız slug erişim yetkisidir: onu elinde bulunduran herkes bu raporu okuyabilir ve başka hiç kimse onu tahmin edemez.
Uç Noktalar
Temel adres https://email-spam-tester.com. Her şey JSON olarak yanıt verir.
POST/api/v1/inbox
Tek kullanımlık bir adres ayırır. Her iki parametre de isteğe bağlıdır.
| lang | Düzeltme planının ve denetim başına bulguların yazılacağı dilin ISO kodu. Buna şimdi karar verilir çünkü ileti dakikalar sonra SMTP üzerinden gelir ve onu kimin beklediğine dair hiçbir ipucu taşımaz. Bilinmeyen bir kod için varsayılan olarak İngilizce kullanılır. |
| utm_source, utm_medium, utm_campaign | Analiz sistemimize aynen iletilir. Kendi entegrasyonunuzu ölçüyorsanız kullanışlıdır. |
GET/api/v1/tests/{slug}/status
Sık sorgulamak düşük maliyetlidir. İki durum alanını ve denetimlerin ne kadar ilerlediğini döndürür, başka hiçbir şey döndürmez.
GET/api/v1/tests/{slug}
Raporun tamamı. Adres ayrılmışken ve henüz hiçbir şey ulaşmamışken 202, ulaştıktan sonra 200 yanıtını verir.
GET/api/v1/tests/{slug}/message
İleti tam olarak teslim edildiği şekliyle: iletim sırasındaki her başlık, her iki gövde, ek listesi ve ham kaynak. Rapor sorgulandığı ve bunun boyutu bir megabayta ulaşabildiği için ayrı olarak alınır.
PUT/api/v1/tests/{slug}/locale
Henüz kullanılmamış bir rezervasyonun dilini değiştirir. Adresi zaten istemiş olan ve kullanıcısının hangi dili okuduğunu sonradan öğrenen bir aracı içindir. İleti ulaştıktan sonra reddedilir, çünkü o zamana kadar analiz çalışmaya başlamıştır.
GET/api/health
Canlılık denetimi. Kimlik doğrulama yok, yan etki yok.
Raporu okuma
Yanıtı taşıyan alanlar, muhtemelen isteyeceğiniz sırayla.
| score_ours | 0 ile 100 arası. Bizim modelimiz. Kimlik doğrulama ve altyapı ağırlığın çoğunu taşır, çünkü bir filtre metindeki tek bir kelimeyi okumadan önce teslimata onlar karar verir. |
| score_compat | 0 ile 10 arası. Kullanıcıların zaten karşılaştırdığı SpamAssassin tarzı sayıyı yeniden üretir, böylece rapor birinin başka bir yerde gördüğü sonuçla karşılaştırılabilir. |
| subscores | Her bölüm için aynı 0 ile 100 arası ölçek: auth, infra_spam, content, compliance. |
| checks[] | 41 kontrolün tamamı; her biri bir durum, tek satırlık bir bulgu, kararın dayandığı kanıt ve iki puana maliyetiyle birlikte. |
| checks[].citations | Bulgunun kaynağı: RFC'nin ilgili bölümü, birebir alıntısı ve Google'ın kendi gereksinimini belirttiği sayfa. Oluşturulmak yerine elle derlenmiştir, bu nedenle bunlara güvenilebilir. |
| düzeltmeler[] | Yapılacak değişiklikler, sırasıyla ve her değişikliğin sağlayacağı puanlarla birlikte. Kazanımlar tahmin edilmez, rapor yeniden puanlanarak hesaplanır. |
| tamamlandı | Bir kontrol çalıştırılamadığında False olur. Kontrol edilmemiş bir öğe hiçbir zaman başarılı sayılmaz, bu nedenle true olana kadar puanı iyimser kabul edin. |
| rapor_url | İnsan tarafından okunabilen sayfa. JSON yığını yerine bunu bir kişiye verin. |
Durumlar
Bir kontrol beş durumdan birindedir ve bunlardan ikisi arasındaki fark göründüğünden daha önemlidir.
| başarılı | Kontrol çalıştı ve herhangi bir sorun bulmadı. |
| uyarı | Düzeltilmeye değer. Puan kaybettirir. |
| başarısız | Teslimata mal olur. Daha fazla puana mal olur. |
| atla | Uygulanmadı. Taranacak ek yok, değerlendirilecek HTML bölümü yok. Başarılı sayılmaz. |
| hata | Sonucu belirleyemedik. Başarılı sayılmak yerine puanlamaya dahil edilmedi ve işaretlendi. |
analysis_status received, analyzing, checks_ready, failed değerlerini alır. ai_status pending, running, ready, fallback, error değerlerini alır. Belirlenimci rapor checks_ready durumunda nihaidir; ai_status yalnızca planı ekler.
Neler dönebilir
| 202 | Adres rezerve edilmiştir ve henüz hiçbir ileti ulaşmamıştır. Gövde adresi, sona erme zamanını ve dili içerir; böylece rezervasyonu oluşturmamış bir çağıran da bunları gösterebilir. |
| 404 | Böyle bir slug yok. Ya hiç var olmadı ya da rezervasyon unutuldu. |
| 410 | Adres, bir ileti ulaşmadan önce sona erdi. |
| 409 | İleti zaten ulaştıktan sonra dili değiştirmeyi denediniz. |
| 429 | Adresiniz için ücretsiz test sınırı. Şu anda bu hizmette kişi başına bir sınır yoktur; ileride belirlenirse gövde, sınırın ne zaman sıfırlanacağını belirtir. |
Bilinmesi gereken dört şey
Adres başına bir ileti
İkinci ileti reddedilir. Önceki raporunuz olduğu gibi kalır, amaç da budur.
Kullanmak için bir saat
Adresin süresi dolar; raporun dolmaz. Rapor bağlantıları kalıcıdır, dolayısıyla bir destek kaydına yapıştırılan bağlantı çalışmaya devam eder.
Platformdan gönderin
Bir kampanyayı kişisel bir hesaptan test etmek, o hesabı ölçer. Kimlik doğrulama bölümündeki hemen hemen her şey metinle değil, gönderim altyapısıyla ilgilidir.
Düzelttikten sonra yeniden test edin
Beklenen kazanımlar her seferinde tek bir düzeltme için hesaplanır ve birleşmez. İkinci rapor doğru değeri verir.
Makineler için
- /api/openapi.json API'ye hizmet veren aynı koddan oluşturulan OpenAPI açıklaması.
- /llms.txt, /llms-full.txt Dil modelleri için bu sitenin llms.txt kuralına uygun kısa bir haritası ve tüm döngü ile rapor alanlarını tek bir dosyada içeren daha uzun bir sürümü.
- /mcp Aynı özelliğe ve engelleyici beklemeye sahip bir MCP sunucusu; bu, model içinden yoklama yapmaktan daha iyidir.
- For agents Aracı sayfası: bunun ne zaman kullanılacağı, atlanan bir kontrolün başarılı bir kontrole kıyasla nasıl okunacağı ve hangi bulguların bir aracının düzenleyebileceği metinler yerine bir kişinin değiştirmesi gereken DNS kayıtları olduğu.
Önce birini elle deneyin
Yaklaşık bir dakika sürer ve JSON'ın neyi açıkladığını tam olarak gösterir.