Μηνύματα

Τα μηνύματα αντιπροσωπεύουν μεμονωμένα 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 προηγουμένως ανεβασμένων συνημμένων για ενσωμάτωση.
javascript
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 για να ακολουθήσετε τον κύκλο ζωής από την πλευρά του παρόχου.

Κύκλος ζωής εξερχόμενων

Καταστάσεις αποτυχίας

Εισερχόμενα μηνύματα

Αν ένα μήνυμα φτάσει σε κατάσταση 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.
javascript
// 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 μαζί με το bodyHtml. Αυτό βελτιώνει την παραδοσιμότητα, την προσβασιμότητα και τη συμβατότητα με email clients απλού κειμένου.

Διαγραφή Μηνυμάτων

DELETE /messages/{id}

Διαγράψτε ένα μήνυμα με το ID του. Αυτό αφαιρεί την εγγραφή μηνύματος από το AgentSend. Δεν ανακαλεί ένα ήδη παραδοθέν email από το mailbox του παραλήπτη.

javascript
await fetch(`https://api.agentsend.io/messages/${messageId}`, {
  method: "DELETE",
  headers: { "x-api-key": process.env.AGENTSEND_API_KEY },
});

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