Μηνύματα
Τα μηνύματα αντιπροσωπεύουν μεμονωμένα email που στέλνονται ή λαμβάνονται από ένα εισερχόμενο. Στείλτε εμπλουτισμένα HTML email, παρακολουθήστε την κατάσταση παράδοσης και διαβάστε εισερχόμενες απαντήσεις.
Επισκόπηση
Ένα μήνυμα είναι ένα μεμονωμένο email που σχετίζεται με εισερχόμενα. Όταν ο πράκτοράς σας στέλνει ένα email δημιουργεί ένα εξερχόμενο μήνυμα. Όταν κάποιος απαντά ή στέλνει email στη διεύθυνση του πράκτορά σας, δημιουργείται αυτόματα ένα εισερχόμενο μήνυμα.
Κάθε μήνυμα ανήκει σε ένα νήμα — είτε σε ένα υπάρχον (για απαντήσεις) είτε σε ένα νέο νήμα που δημιουργείται αυτόματα όταν ξεκινά μια νέα συνομιλία.
Τα μηνύματα είναι αμετάβλητα μόλις δημιουργηθούν. Για να στείλετε follow-up, δημιουργήστε ένα νέο μήνυμα στο ίδιο νήμα περνώντας το threadId.
Αποστολή Email
POST /inboxes/{inboxId}/messages
Στείλτε email από ένα εισερχόμενο κάνοντας POST στο endpoint μηνυμάτων του. Ο πίνακας to και το subject απαιτούνται· όλα τα άλλα είναι προαιρετικά.
Σώμα Request
| Πεδίο | Τύπος | Περιγραφή |
|---|---|---|
to απαιτείται |
string[] | Πίνακας διευθύνσεων email παραληπτών. |
subject απαιτείται |
string | Γραμμή θέματος email. |
cc |
string[] | Παραλήπτες CC. |
bcc |
string[] | Παραλήπτες BCC. Δεν είναι ορατοί σε άλλους παραλήπτες. |
bodyText |
string | Σώμα απλού κειμένου. Χρησιμοποιείται ως εναλλακτικό όταν παρέχεται και bodyHtml. |
bodyHtml |
string | Σώμα HTML. Όταν παρέχονται και bodyText και bodyHtml, το email αποστέλλεται ως multipart/alternative. |
threadId |
string | Νήμα στο οποίο θα απαντήσετε. Αν παραλειφθεί, δημιουργείται νέο νήμα. |
attachmentIds |
string[] | Τα ID προηγουμένως ανεβασμένων συνημμένων για ενσωμάτωση. |
const res = await fetch( `https://api.agentsend.io/inboxes/${inboxId}/messages`, { method: "POST", headers: { "x-api-key": process.env.AGENTSEND_API_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ to: ["customer@example.com"], subject: "Following up on your request", bodyText: "Hi, just checking in on your request.", bodyHtml: "<p>Hi, just checking in on your request.</p>", }), } ); const message = await res.json(); console.log(message.id); // msg_abc123 console.log(message.delivery); // "email" or "dry-run" console.log(message.status); // "queued"
Ιδιότητες Μηνύματος
Κάθε αντικείμενο μηνύματος που επιστρέφεται από το API έχει τα εξής πεδία.
| Ιδιότητα | Τύπος | Περιγραφή |
|---|---|---|
id |
string | Μοναδικό αναγνωριστικό μηνύματος. |
inboxId |
string | Τα εισερχόμενα στα οποία ανήκει αυτό το μήνυμα. |
threadId |
string | Το νήμα συνομιλίας στο οποίο ομαδοποιείται αυτό το μήνυμα. |
direction |
string | outbound για email που στέλνει ο πράκτοράς σας· inbound για ληφθέντα email. |
fromAddress |
string | Διεύθυνση email αποστολέα. |
toAddresses |
string[] | Κύριοι παραλήπτες. |
ccAddresses |
string[] | Παραλήπτες CC. |
subject |
string | Γραμμή θέματος email. |
bodyText |
string | Περιεχόμενο σώματος απλού κειμένου. |
bodyHtml |
string | Περιεχόμενο σώματος HTML. |
delivery |
string | Αν το περιβάλλον έστειλε πραγματικό email (email) ή μόνο το προσομοίωσε (dry-run). |
status |
string | Τρέχουσα κατάσταση παράδοσης. Δείτε Κατάσταση Μηνύματος παρακάτω. |
attachments |
object[] | Πίνακας αντικειμένων συνημμένων με id, filename, contentType και size. |
messageIdHeader |
string | Η τιμή κεφαλίδας Message-ID κατά RFC 5322, που χρησιμοποιείται για threading σε email clients. |
createdAt |
string | Χρονοσήμανση ISO 8601 δημιουργίας του μηνύματος. |
Κατάσταση Μηνύματος
Τα εξερχόμενα μηνύματα περνούν από έναν κύκλο ζωής παράδοσης. Ελέγξτε πρώτα το delivery για να επιβεβαιώσετε αν το περιβάλλον έστειλε πραγματικό mail ή μόνο το προσομοίωσε, μετά χρησιμοποιήστε το status ή webhooks για να ακολουθήσετε τον κύκλο ζωής από την πλευρά του παρόχου.
Κύκλος ζωής εξερχόμενων
- queued — Το μήνυμα έχει γίνει αποδεκτό και περιμένει να σταλεί.
- sending — Το μήνυμα παραδίδεται ενεργά στον διακομιστή mail του παραλήπτη.
- sent — Το μήνυμα έγινε αποδεκτό από τον διακομιστή mail του παραλήπτη.
- delivered — Η παράδοση επιβεβαιώθηκε (όπου υποστηρίζεται από τον διακομιστή λήψης).
Καταστάσεις αποτυχίας
- failed — Ένα παροδικό ή μόνιμο σφάλμα εμπόδισε την παράδοση. Ελέγξτε το payload του webhook για τον λόγο.
- bounced — Η διεύθυνση παραλήπτη δεν υπάρχει ή ο διακομιστής απέρριψε το μήνυμα μόνιμα.
- complained — Ο παραλήπτης επισήμανε το email ως spam.
Εισερχόμενα μηνύματα
- received — Ένα email έφτασε στα εισερχόμενα από εξωτερικό αποστολέα.
Αν ένα μήνυμα φτάσει σε κατάσταση bounced ή complained, αποφύγετε να στέλνετε περαιτέρω email σε αυτή τη διεύθυνση για να προστατεύσετε τη φήμη αποστολέα σας.
Λίστα Μηνυμάτων
GET /inboxes/{inboxId}/messages
Ανακτήστε μια λίστα με σελιδοποίηση των μηνυμάτων για ένα εισερχόμενο. Φιλτράρετε ανά status για να βρείτε εισερχόμενες απαντήσεις, αποτυχημένες αποστολές ή οποιοδήποτε άλλο υποσύνολο.
| Παράμετρος Query | Τύπος | Περιγραφή |
|---|---|---|
limit |
number | Αριθμός μηνυμάτων προς επιστροφή. Προεπιλογή 20, μέγιστο 100. |
offset |
number | Αριθμός μηνυμάτων προς παράλειψη για σελιδοποίηση. Προεπιλογή 0. |
status |
string | Φιλτράρισμα ανά status. Μία από τις: queued, sending, sent, delivered, failed, bounced, complained, received. |
// Fetch the 10 most recent inbound messages const res = await fetch( `https://api.agentsend.io/inboxes/${inboxId}/messages?status=received&limit=10`, { headers: { "x-api-key": process.env.AGENTSEND_API_KEY } } ); const { data, total } = await res.json(); for (const msg of data) { console.log(msg.fromAddress, msg.subject, msg.bodyText); }
Χρησιμοποιήστε webhooks αντί για polling για να ειδοποιείστε τη στιγμή που φτάνει ένα νέο μήνυμα. Το polling είναι καλή εναλλακτική για απλά scripts και βραχύβιες εργασίες.
HTML vs Απλό Κείμενο
Το AgentSend υποστηρίζει email απλού κειμένου, HTML και multipart. Χρησιμοποιήστε το bodyText για απλό κείμενο και το bodyHtml για περιεχόμενο HTML.
- Αν παρέχετε μόνο
bodyText, το email αποστέλλεται ωςtext/plain. - Αν παρέχετε μόνο
bodyHtml, το email αποστέλλεται ωςtext/html. - Αν παρέχετε και τα δύο, το email αποστέλλεται ως
multipart/alternative. Οι email clients που υποστηρίζουν HTML θα εμφανίσουν την έκδοση HTML· οι άλλοι θα χρησιμοποιήσουν την έκδοση απλού κειμένου.
Πάντα να συμπεριλαμβάνετε μια έκδοση bodyText μαζί με το bodyHtml. Αυτό βελτιώνει την παραδοσιμότητα, την προσβασιμότητα και τη συμβατότητα με email clients απλού κειμένου.
Διαγραφή Μηνυμάτων
DELETE /messages/{id}
Διαγράψτε ένα μήνυμα με το ID του. Αυτό αφαιρεί την εγγραφή μηνύματος από το AgentSend. Δεν ανακαλεί ένα ήδη παραδοθέν email από το mailbox του παραλήπτη.
await fetch(`https://api.agentsend.io/messages/${messageId}`, { method: "DELETE", headers: { "x-api-key": process.env.AGENTSEND_API_KEY }, });
Η διαγραφή ενός μηνύματος είναι μόνιμη. Τα εισερχόμενα μηνύματα που αποτελούν μέρος ενεργού νήματος πρέπει να διαγράφονται με προσοχή, καθώς το ιστορικό του νήματος θα είναι ελλιπές.