Email Spam Tester

Το API

Τρεις κλήσεις. Χωρίς κλειδί, χωρίς λογαριασμό, χωρίς εγγραφή.

Δεσμεύστε μια διεύθυνση, στείλτε το μήνυμα που επρόκειτο να στείλετε στη λίστα σας, διαβάστε την αναφορά. Όλα όσα εμφανίζει η σελίδα περιλαμβάνονται στο JSON, μαζί με τη βαθμολογία, και τους 41 ελέγχους με τα τεκμήριά τους, καθώς και την ενότητα του προτύπου στην οποία βασίζεται κάθε εύρημα.

Οι πρώτες 100.000 αναφορές είναι δωρεάν, χωρίς κλειδί και χωρίς λογαριασμό. Αν συνδέετε έναν agent αντί για ένα script, ο διακομιστής MCP είναι καταλληλότερος από το polling.

Δοκιμάστε το στο sandbox → Κάθε endpoint, με ένα κουμπί που το εκτελεί στην ενεργή υπηρεσία. Τίποτα εδώ δεν χρειάζεται κλειδί, επομένως ένα αίτημα που στέλνετε από αυτή τη σελίδα είναι πραγματικό: δεσμεύει μια πραγματική διεύθυνση και προσμετράται.

Ο κύκλος

Δύο αιτήματα και ένα email. Η τρίτη κλήση υπάρχει μόνο επειδή η ανάλυση διαρκεί λίγα δευτερόλεπτα.

  1. Δεσμεύστε μια διεύθυνση

    Στείλτε POST στο endpoint του inbox. Λαμβάνετε μια διεύθυνση που δέχεται ακριβώς ένα μήνυμα και λήγει σε μία ώρα, καθώς και το slug που χρησιμοποιείται ως κλειδί για όλα τα υπόλοιπα.

  2. Στείλτε σε αυτή το πραγματικό μήνυμα

    Μέσω SMTP, από την πλατφόρμα που θα στείλει την καμπάνια. Οι μισοί έλεγχοι διαβάζουν κεφαλίδες που προσθέτει η πλατφόρμα αποστολής σας, επομένως ένα μήνυμα που συντάχθηκε χειροκίνητα μετρά το λάθος πράγμα.

  3. Ελέγξτε περιοδικά την κατάσταση και μετά διαβάστε την αναφορά

    Το endpoint κατάστασης έχει μέγεθος μερικών εκατοντάδων byte και σας ενημερώνει αν αξίζει να ανακτηθεί ήδη η πλήρης αναφορά. Η ίδια η αναφορά εκτείνεται σε αρκετές χιλιάδες γραμμές.

# 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"}}
  ]
}

Έλεγχος ταυτότητας

Δεν υπάρχει. Δεν χρειάζεται να ζητήσετε κλειδί, να ορίσετε κεφαλίδα ή να δημιουργήσετε λογαριασμό. Το slug που λαμβάνετε είναι η δυνατότητα πρόσβασης: όποιος το κατέχει μπορεί να διαβάσει αυτή την αναφορά και κανείς άλλος δεν μπορεί να το μαντέψει.

Αυτό σημαίνει επίσης ότι ένα slug πρέπει να αντιμετωπίζεται όπως ένας κωδικός πρόσβασης. Μια αναφορά εμφανίζει τη γραμμή θέματος, τον αποστολέα, τη διεύθυνση επιστροφής και την πλήρη πηγή του μηνύματος σε οποιονδήποτε διαθέτει τον σύνδεσμο.

Τελικά σημεία

Βασική διεύθυνση https://email-spam-tester.com. Όλα αποκρίνονται με JSON.

POST/api/v1/inbox

Δεσμεύει μια διεύθυνση μίας χρήσης. Και οι δύο παράμετροι είναι προαιρετικές.

langΗ γλώσσα στην οποία θα γραφτούν το σχέδιο διόρθωσης και τα ευρήματα ανά έλεγχο, ως κωδικός ISO. Καθορίζεται τώρα, επειδή το μήνυμα φτάνει μέσω SMTP λίγα λεπτά αργότερα και δεν περιέχει καμία ένδειξη για το ποιος το περιμένει. Ένας άγνωστος κωδικός χρησιμοποιεί ως εναλλακτική τα Αγγλικά.
utm_source, utm_medium, utm_campaignΠροωθούνται στα αναλυτικά στοιχεία μας. Χρήσιμο αν μετράτε τη δική σας ενσωμάτωση.

GET/api/v1/tests/{slug}/status

Η συχνή εκτέλεση αιτημάτων είναι οικονομική. Επιστρέφει τα δύο πεδία κατάστασης και μέχρι πού έχουν φτάσει οι έλεγχοι, και τίποτε άλλο.

Εκτελέστε αιτήματα σε αυτό αντί για την αναφορά. Το analysis_status φτάνει πρώτα στην τιμή checks_ready και το σχέδιο AI εμφανίζεται στο ai_status περίπου ένα λεπτό αργότερα, ώστε ένας καλών που θέλει μόνο τους ντετερμινιστικούς ελέγχους να μη χρειάζεται να περιμένει το σχέδιο.

GET/api/v1/tests/{slug}

Ολόκληρη η αναφορά. Αποκρίνεται με 202 όσο η διεύθυνση είναι δεσμευμένη και δεν έχει φτάσει ακόμη τίποτα, και με 200 μόλις φτάσει.

GET/api/v1/tests/{slug}/message

Το μήνυμα ακριβώς όπως παραδόθηκε: κάθε κεφαλίδα με τη σειρά μετάδοσης, και τα δύο σώματα, η λίστα συνημμένων και η ακατέργαστη πηγή. Ανακτάται ξεχωριστά, επειδή η αναφορά ελέγχεται επανειλημμένα και αυτό μπορεί να φτάσει το ένα megabyte.

Το ανεπεξέργαστο μήνυμα διαγράφεται σύμφωνα με το δικό του χρονόμετρο, νωρίτερα από την αναφορά. Μετά από αυτό, αυτό το endpoint απαντά με την αιτία αντί για το αρχικό περιεχόμενο.

PUT/api/v1/tests/{slug}/locale

Αλλάζει τη γλώσσα μιας κράτησης που δεν έχει χρησιμοποιηθεί ακόμη. Για έναν agent που μαθαίνει ποια γλώσσα διαβάζει ο χρήστης του αφού έχει ήδη ζητήσει τη διεύθυνση. Απορρίπτεται μόλις φτάσει το μήνυμα, επειδή μέχρι τότε εκτελείται ήδη η ανάλυση.

GET/api/health

Έλεγχος λειτουργίας. Χωρίς έλεγχο ταυτότητας, χωρίς παρενέργειες.

Ανάγνωση της αναφοράς

Τα πεδία που περιέχουν την απάντηση, με τη σειρά που πιθανότατα τα χρειάζεστε.

score_ours0 έως 100. Το μοντέλο μας. Ο έλεγχος ταυτότητας και η υποδομή έχουν τη μεγαλύτερη βαρύτητα, επειδή καθορίζουν την παράδοση προτού ένα φίλτρο διαβάσει έστω και μία λέξη του κειμένου.
score_compat0 έως 10. Αναπαράγει τη βαθμολογία τύπου SpamAssassin που οι χρήστες ήδη συγκρίνουν, ώστε η αναφορά να είναι συγκρίσιμη με ό,τι είδε κάποιος αλλού.
subscoresΗ ίδια κλίμακα από 0 έως 100 ανά ενότητα: auth, infra_spam, content, compliance.
checks[]Και οι 41 έλεγχοι, ο καθένας με κατάσταση, εύρημα μίας γραμμής, τα αποδεικτικά στοιχεία στα οποία βασίστηκε η απόφαση και το κόστος του για τις δύο βαθμολογίες.
checks[].citationsΑπό πού προέρχεται το εύρημα: η ενότητα του RFC, παρατιθέμενη κατά λέξη, και η σελίδα όπου η Google δηλώνει τη δική της απαίτηση. Έχουν επιμεληθεί χειροκίνητα αντί να έχουν δημιουργηθεί αυτόματα, ώστε να είναι αξιόπιστα.
fixes[]Τι πρέπει να αλλάξει, με τη σειρά, μαζί με τους βαθμούς που αξίζει κάθε αλλαγή. Τα οφέλη υπολογίζονται με νέα βαθμολόγηση της αναφοράς, δεν αποτελούν εκτίμηση.
completeFalse όταν ένας έλεγχος δεν μπόρεσε να εκτελεστεί. Ένα στοιχείο που δεν ελέγχθηκε δεν θεωρείται ποτέ επιτυχές, οπότε θεωρήστε τη βαθμολογία αισιόδοξη μέχρι να γίνει true.
report_urlΗ σελίδα σε μορφή αναγνώσιμη από άνθρωπο. Δώστε αυτήν σε κάποιον αντί για έναν τοίχο από JSON.

Καταστάσεις

Ένας έλεγχος βρίσκεται σε μία από πέντε καταστάσεις, και η διαφορά μεταξύ δύο από αυτές έχει μεγαλύτερη σημασία από όσο φαίνεται.

passΟ έλεγχος εκτελέστηκε και δεν βρήκε κανένα πρόβλημα.
warnΑξίζει να διορθωθεί. Κοστίζει βαθμούς.
failΘα σας κοστίσει στην παράδοση. Κοστίζει περισσότερους βαθμούς.
παράλειψηΔεν εφαρμόστηκε. Δεν υπάρχουν συνημμένα για σάρωση, ούτε τμήμα HTML για αξιολόγηση. Δεν αποτελεί επιτυχία.
σφάλμαΔεν μπορέσαμε να το εξακριβώσουμε. Εξαιρείται από τη βαθμολογία και επισημαίνεται, αντί να υπολογίζεται ως επιτυχία.

Το analysis_status περνά από received, analyzing, checks_ready, failed. Το ai_status περνά από pending, running, ready, fallback, error. Η ντετερμινιστική αναφορά είναι οριστική στο checks_ready· το ai_status προσθέτει μόνο το πλάνο.

Τι μπορεί να επιστραφεί

202Η διεύθυνση είναι δεσμευμένη και δεν έχει φτάσει κανένα μήνυμα. Το σώμα περιέχει τη διεύθυνση, τη λήξη και τη γλώσσα, ώστε ένας καλών που δεν δημιούργησε τη δέσμευση να μπορεί παρ' όλα αυτά να την εμφανίσει.
404Δεν υπάρχει τέτοιο slug. Είτε δεν υπήρξε ποτέ είτε η δέσμευση ξεχάστηκε.
410Η διεύθυνση έληξε πριν φτάσει κάποιο μήνυμα.
409Προσπαθήσατε να αλλάξετε τη γλώσσα αφού το μήνυμα είχε ήδη φτάσει.
429Το όριο δωρεάν δοκιμών για τη διεύθυνσή σας. Αυτή τη στιγμή δεν υπάρχει όριο ανά άτομο σε αυτή την υπηρεσία· αν οριστεί ποτέ, το σώμα αναφέρει πότε μηδενίζεται.

Τέσσερα πράγματα που αξίζει να γνωρίζετε

Ένα μήνυμα ανά διεύθυνση

Το δεύτερο απορρίπτεται. Η προηγούμενη αναφορά σας παραμένει ανέπαφη, και αυτό είναι το ζητούμενο.

Μία ώρα για να τη χρησιμοποιήσετε

Η διεύθυνση λήγει· η αναφορά όχι. Οι σύνδεσμοι αναφορών είναι μόνιμοι, οπότε ένας σύνδεσμος που επικολλάται σε ένα αίτημα υποστήριξης συνεχίζει να λειτουργεί.

Στείλτε από την πλατφόρμα

Η δοκιμή μιας καμπάνιας από προσωπικό λογαριασμό μετρά αυτόν τον λογαριασμό. Σχεδόν όλα στην ενότητα ελέγχου ταυτότητας αφορούν την υποδομή αποστολής, όχι το κείμενο.

Επαναλάβετε τη δοκιμή μετά τη διόρθωση

Τα αναμενόμενα οφέλη υπολογίζονται για μία διόρθωση κάθε φορά και δεν συνδυάζονται. Η δεύτερη αναφορά δίνει τον πραγματικό αριθμό.

Για συστήματα

Δοκιμάστε πρώτα ένα χειροκίνητα

Χρειάζεται περίπου ένα λεπτό και σας δείχνει ακριβώς τι περιγράφει το JSON.

Λήψη διεύθυνσης δοκιμής