Μετάβαση στο περιεχόμενο
Yuva

Yuva Email Worker για Cloudflare

Email υποστήριξης μέσω Cloudflare.Κανένας διακομιστής αλληλογραφίας να τρέχετε.

Το Cloudflare® Email Routing παραλαμβάνει την αλληλογραφία των διευθύνσεων υποστήριξής σας και το Yuva Email Worker ανοιχτού κώδικα παραδίδει κάθε μήνυμα στο Yuva, υπογεγραμμένο. Καταλήγει στα κοινά εισερχόμενά σας ως συνομιλία που απαντά η ομάδα σας.

Τι είναι

Email Routing μπροστά

Το Cloudflare Email Routing γίνεται το MX του domain σας και παραλαμβάνει την αλληλογραφία. Το Yuva δεν ακούει SMTP, άρα δεν υπάρχει διακομιστής αλληλογραφίας για εγκατάσταση ή ενημέρωση.

Ένα μικρό Worker ανοιχτού κώδικα

Το Yuva Email Worker διαβάζει το ακατέργαστο μήνυμα και τον φάκελο, υπογράφει το αίτημα και το στέλνει στο Yuva. Η ανάλυση, η ομαδοποίηση σε νήματα και οι αποφάσεις για spam μένουν στον διακομιστή.

Πραγματικές συνομιλίες

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

Πώς φτάνει ένα μήνυμα από τον πελάτη στην ομάδα σας

  1. 1Ένας πελάτης γράφει σε μία από τις διευθύνσεις υποστήριξής σας, για παράδειγμα support@example.com.
  2. 2Το Cloudflare Email Routing παραλαμβάνει το μήνυμα και το περνά στο Yuva Email Worker.
  3. 3Το Worker υπογράφει το ακατέργαστο μήνυμα, τις δύο διευθύνσεις φακέλου και μια χρονοσφραγίδα με HMAC-SHA256 με ένα μυστικό που μοιράζεστε με το Yuva, και τα στέλνει στο /ingress/email του διακομιστή Yuva σας.
  4. 4Το Yuva ελέγχει την υπογραφή και ότι η χρονοσφραγίδα είναι εντός 5 λεπτών πριν διαβάσει το μήνυμα. Ένα αίτημα με λάθος υπογραφή απορρίπτεται.
  5. 5Το Yuva βρίσκει το κανάλι email για τη διεύθυνση του παραλήπτη και τοποθετεί το μήνυμα με βάση τα In-Reply-To και References στη συνομιλία στην οποία ανήκει. Οτιδήποτε άλλο ξεκινά νέα συνομιλία. Μια απάντηση ανοίγει ξανά τη συνομιλία.
  6. 6Η ομάδα σας απαντά στον πίνακα. Η απάντηση στέλνεται μέσω του δικού του λογαριασμού SMTP του καναλιού email, όπως Amazon SES, Postmark ή δικό σας relay, από την ίδια διεύθυνση και στο ίδιο νήμα. Οι απαντήσεις δεν περνούν από το Worker.

Οι απορρίψεις φτάνουν στον αποστολέα

Όταν το Yuva απορρίπτει οριστικά ένα μήνυμα, για παράδειγμα άγνωστη διεύθυνση, αποκλεισμένο αποστολέα ή υπερβολικά μεγάλο μήνυμα, το Worker το απορρίπτει και ο αποστολέας λαμβάνει μόνιμο σφάλμα SMTP με τον λόγο του Yuva.

Αν το Yuva δεν είναι προσβάσιμο

Αν το Yuva απαντήσει με σφάλμα διακομιστή, δεν απαντήσει σε 20 δευτερόλεπτα ή δεν είναι προσβάσιμο, το Worker μπορεί να προωθήσει το μήνυμα σε διεύθυνση που επιλέγετε, εφόσον ορίσετε FALLBACK_FORWARD. Η διεύθυνση αυτή πρέπει να είναι επαληθευμένος προορισμός στο Email Routing. Το μήνυμα φτάνει τότε ως απλή προώθηση και δεν εμφανίζεται στο Yuva. Χωρίς FALLBACK_FORWARD η παράδοση αποτυγχάνει με σφάλμα και ο διακομιστής αποστολής μπορεί να ξαναδοκιμάσει αργότερα.

Ρυθμίστε το σε λίγα βήματα

Χρειάζεστε έναν διακομιστή Yuva και έναν λογαριασμό Cloudflare που διαχειρίζεται το domain.

  1. 1

    Στο Yuva, ανοίξτε Ρυθμίσεις → τα εισερχόμενά σας → Κανάλια → Email και προσθέστε τη διεύθυνση υποστήριξης. Ορίστε ένα μυστικό στον διακομιστή και επανεκκινήστε τον:

    YUVA_INGRESS_SECRET=<openssl rand -hex 32>
    YUVA_INGRESS_AUTHSERV_ID=mx.cloudflare.net
  2. 2

    Αναπτύξτε το Worker στον λογαριασμό σας στο Cloudflare, με το ίδιο μυστικό:

    cd edge
    bun install
    bunx wrangler login
    bunx wrangler secret put INGRESS_SECRET
    bunx wrangler deploy --var YUVA_URL:https://support.example.com
  3. 3

    Στον πίνακα ελέγχου του Cloudflare, ανοίξτε το domain σας → Email → Email Routing και ενεργοποιήστε το. Το Cloudflare προσθέτει τις εγγραφές MX και SPF.

  4. 4

    Στα Routing rules, στείλτε κάθε διεύθυνση υποστήριξης στο Worker yuva-edge. Για κανάλι catch-all, στρέψτε τον κανόνα catch-all σε αυτό.

  5. 5

    Στείλτε ένα δοκιμαστικό μήνυμα και δείτε τη συνομιλία να εμφανίζεται στον πίνακα.

  6. 6

    Προαιρετικά: κρατήστε την αλληλογραφία σε περίπτωση διακοπής προσθέτοντας μια εναλλακτική διεύθυνση στην εντολή ανάπτυξης:

    bunx wrangler deploy --var YUVA_URL:https://support.example.com --var FALLBACK_FORWARD:you@example.org

Το Email Routing γίνεται το MX του domain, γι' αυτό χρησιμοποιήστε domain ή υποτομέα που δεν χειρίζεται άλλος διακομιστής αλληλογραφίας.

Διαβάστε τον οδηγό ρύθμισης →

Δεν δεσμεύεται στο Cloudflare

Το Worker είναι ένας τρόπος να καλέσετε το /ingress/email. Οποιοσδήποτε διακομιστής αλληλογραφίας ή relay μπορεί να στείλει το ακατέργαστο μήνυμα με τις ίδιες υπογεγραμμένες κεφαλίδες, και ένας διακομιστής που παραδίδει σε εντολή μπορεί να περάσει το μήνυμα στο yuva ingest-email. Η μορφή του αιτήματος τεκμηριώνεται στο README του Worker.

Ερωτήσεις και απαντήσεις

Χρειάζεται να τρέχω διακομιστή αλληλογραφίας;

Όχι για εισερχόμενη αλληλογραφία. Το Yuva δεν ακούει SMTP· το Cloudflare Email Routing παραλαμβάνει την αλληλογραφία και το Worker την προωθεί. Οι απαντήσεις χρειάζονται λογαριασμό SMTP για το κανάλι email, όπως Amazon SES, Postmark ή δικό σας relay.

Τι συμβαίνει όταν το Yuva είναι εκτός λειτουργίας;

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

Ποια domains και διευθύνσεις μπορώ να χρησιμοποιήσω;

Οποιοδήποτε domain διαχειρίζεστε στο Cloudflare και του οποίου την αλληλογραφία δεν χειρίζεται άλλος διακομιστής, επειδή το Email Routing γίνεται το MX του. Κάθε κανάλι email έχει μια διεύθυνση ή την καθολική *@example.com για κάθε διεύθυνση του domain που κανένα κανάλι δεν έχει ακριβώς. Μια υποδιεύθυνση όπως η support+billing@example.com φτάνει στο κανάλι της support@example.com.

Πόσο μεγάλο μπορεί να είναι ένα μήνυμα;

Ένα μήνυμα μπορεί να φτάσει τα 25 MiB μαζί με τα συνημμένα, που είναι το όριο του Cloudflare Email Routing. Το Yuva κρατά έως 50 συνημμένα ανά μήνυμα, καθένα εντός του ορίου μεγέθους συνημμένων του διακομιστή (25 MiB από προεπιλογή) και των επιτρεπόμενων τύπων· τα υπόλοιπα τα παραλείπει.

Μπορεί κάποιος να πλαστογραφήσει αλληλογραφία προς τον διακομιστή Yuva μου;

Το Yuva απορρίπτει κάθε αίτημα χωρίς έγκυρη υπογραφή HMAC ή με χρονοσφραγίδα που διαφέρει πάνω από 5 λεπτά, πριν διαβάσει το σώμα. Κρατήστε το μυστικό για τον εαυτό σας.

Χρησιμοποιεί το Yuva το αποτέλεσμα DMARC από το Cloudflare;

Ναι, όταν ορίσετε το YUVA_INGRESS_AUTHSERV_ID σε mx.cloudflare.net. Το Yuva διαβάζει τότε την κρίση DMARC που προσθέτει το Email Routing. Μια νέα συνομιλία που αποτυγχάνει στο DMARC σημαίνεται ως spam.

Τα Cloudflare, το λογότυπο Cloudflare και Cloudflare Workers είναι εμπορικά σήματα ή/και κατατεθέντα εμπορικά σήματα της Cloudflare, Inc. στις Ηνωμένες Πολιτείες και σε άλλες δικαιοδοσίες. Το Yuva είναι ανεξάρτητο έργο ανοιχτού κώδικα, χωρίς σχέση ή έγκριση από την Cloudflare.