Yuva Email Worker עבור Cloudflare
מייל תמיכה דרך Cloudflare.אין שרת דואר להריץ.
Cloudflare® Email Routing מקבל את הדואר של כתובות התמיכה שלכם, וה-Yuva Email Worker בקוד פתוח מוסר כל הודעה ל-Yuva, חתומה. היא נוחתת בתיבה המשותפת שלכם כשיחה שהצוות שלכם עונה עליה.
מה זה
Email Routing בחזית
Cloudflare Email Routing הופך ל-MX של הדומיין שלכם ומקבל את הדואר. Yuva לא מאזינה ל-SMTP, ולכן אין שרת דואר להתקין או לעדכן.
Worker קטן בקוד פתוח
ה-Yuva Email Worker קורא את ההודעה הגולמית ואת המעטפה, חותם על הבקשה ושולח אותה ל-Yuva. הניתוח, הקישור לשרשורים והחלטות הספאם נשארים בשרת.
שיחות אמיתיות
דואר שנשלח לכתובת תמיכה פותח או ממשיך שיחה בתיבה, והצוות עונה מאותו לוח כמו הצ'אט והודעות האפליקציה.
איך הודעה מגיעה מהלקוח לצוות שלכם
- 1לקוח כותב לאחת מכתובות התמיכה שלכם, למשל support@example.com.
- 2Cloudflare Email Routing מקבל את ההודעה ומעביר אותה ל-Yuva Email Worker.
- 3ה-Worker חותם על ההודעה הגולמית, שתי כתובות המעטפה וחותמת זמן ב-HMAC-SHA256 תחת סוד שאתם חולקים עם Yuva, ושולח אותם אל /ingress/email בשרת ה-Yuva שלכם.
- 4Yuva בודקת את החתימה ושחותמת הזמן בטווח של 5 דקות לפני שהיא קוראת את ההודעה. בקשה עם חתימה שגויה נדחית.
- 5Yuva מוצאת את ערוץ המייל של כתובת הנמען ומקשרת את ההודעה לפי In-Reply-To ו-References לשיחה שאליה היא שייכת. כל דבר אחר פותח שיחה חדשה. תשובה פותחת מחדש את השיחה.
- 6הצוות שלכם עונה בלוח. התשובה נשלחת דרך חשבון ה-SMTP של ערוץ המייל עצמו, כמו Amazon SES, Postmark או ריליי משלכם, מאותה כתובת ובאותו שרשור. תשובות לא עוברות דרך ה-Worker.
דחיות מגיעות לשולח
כש-Yuva דוחה הודעה סופית, למשל כתובת לא מוכרת, שולח חסום או הודעה גדולה מדי, ה-Worker דוחה אותה והשולח מקבל שגיאת SMTP קבועה עם הסיבה של Yuva.
אם אי אפשר להגיע ל-Yuva
אם Yuva עונה בשגיאת שרת, לא עונה תוך 20 שניות או שאי אפשר להגיע אליה, ה-Worker יכול להעביר את ההודעה לכתובת שתבחרו, כל עוד הגדרתם את FALLBACK_FORWARD. הכתובת חייבת להיות יעד מאומת ב-Email Routing. ההודעה תגיע אז כהעברה רגילה ולא תופיע ב-Yuva. בלי FALLBACK_FORWARD המסירה נכשלת בשגיאה והשרת השולח עשוי לנסות שוב מאוחר יותר.
הגדירו אותו בכמה צעדים
אתם צריכים שרת Yuva וחשבון Cloudflare שמנהל את הדומיין.
- 1
ב-Yuva, פתחו הגדרות ← התיבה שלכם ← ערוצים ← מייל והוסיפו את כתובת התמיכה. הגדירו סוד בשרת והפעילו אותו מחדש:
YUVA_INGRESS_SECRET=<openssl rand -hex 32> YUVA_INGRESS_AUTHSERV_ID=mx.cloudflare.net
- 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
בלוח הבקרה של Cloudflare, פתחו את הדומיין שלכם ← Email ← Email Routing והפעילו אותו. Cloudflare מוסיף את רשומות ה-MX וה-SPF שלו.
- 4
תחת Routing rules, שלחו כל כתובת תמיכה ל-Worker בשם yuva-edge. עבור ערוץ כולל, כוונו אליו את הכלל הכולל.
- 5
שלחו הודעת בדיקה וצפו בשיחה מופיעה בלוח.
- 6
אופציונלי: שמרו על הדואר בזמן תקלה על ידי הוספת כתובת גיבוי לפקודת הפריסה:
bunx wrangler deploy --var YUVA_URL:https://support.example.com --var FALLBACK_FORWARD:you@example.org
Email Routing הופך ל-MX של הדומיין, ולכן השתמשו בדומיין או בתת-דומיין שאף שרת דואר אחר לא מטפל בו.
קריאת מדריך ההגדרה →לא קשור ל-Cloudflare
ה-Worker הוא דרך אחת לקרוא ל-/ingress/email. כל שרת דואר או ריליי יכולים לשלוח את ההודעה הגולמית עם אותן כותרות חתומות, ושרת דואר שמוסר לפקודה יכול להזרים את ההודעה ל-yuva ingest-email. פורמט הבקשה מתועד ב-README של ה-Worker.
שאלות ותשובות
האם אני צריך להריץ שרת דואר?
לא לדואר נכנס. Yuva לא מאזינה ל-SMTP; Cloudflare Email Routing מקבל את הדואר וה-Worker מעביר אותו הלאה. תשובות דורשות חשבון SMTP לערוץ המייל, כמו Amazon SES, Postmark או ריליי משלכם.
מה קורה כש-Yuva למטה?
כש-FALLBACK_FORWARD מוגדר, ההודעה מועברת במקום זאת לכתובת הזו. בלעדיו המסירה נכשלת והשרת השולח עשוי לנסות שוב. הודעות ש-Yuva דוחה בכוונה, כמו דואר לכתובת לא מוכרת, נדחות ולא מועברות.
באילו דומיינים וכתובות אפשר להשתמש?
כל דומיין שאתם מנהלים ב-Cloudflare ושאף שרת אחר לא מטפל בדואר שלו, כי Email Routing הופך ל-MX שלו. לכל ערוץ מייל יש כתובת, או את הכתובת הכוללת *@example.com לכל כתובות הדומיין שאין לאף ערוץ בדיוק. תת-כתובת כמו 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 מסומנת כספאם.
Cloudflare, הלוגו של Cloudflare ו-Cloudflare Workers הם סימנים מסחריים ו/או סימנים מסחריים רשומים של Cloudflare, Inc. בארצות הברית ובתחומי שיפוט אחרים. Yuva היא פרויקט עצמאי בקוד פתוח, שאינו קשור ל-Cloudflare ואינו מאושר על ידה.