Cloudflare کے لیے Yuva Email Worker
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 کے حوالے کرتا ہے۔
- 3Worker خام پیغام، دونوں لفافے کے پتوں اور ایک ٹائم اسٹیمپ پر اس خفیہ کلید کے تحت HMAC-SHA256 سے دستخط کرتا ہے جو آپ Yuva کے ساتھ شیئر کرتے ہیں، اور انہیں آپ کے Yuva سرور کے /ingress/email پر بھیجتا ہے۔
- 4پیغام پڑھنے سے پہلے Yuva دستخط اور یہ جانچتا ہے کہ ٹائم اسٹیمپ 5 منٹ کے اندر ہے۔ غلط دستخط والی درخواست مسترد کر دی جاتی ہے۔
- 5Yuva وصول کنندہ کے پتے کا ای میل چینل ڈھونڈتا ہے اور In-Reply-To اور References کے ذریعے پیغام کو اس گفتگو میں دھاگے کی صورت جوڑتا ہے جس کا وہ حصہ ہے۔ باقی سب کچھ نئی گفتگو شروع کرتا ہے۔ جواب گفتگو کو دوبارہ کھولتا ہے۔
- 6آپ کی ٹیم پینل میں جواب دیتی ہے۔ جواب ای میل چینل کے اپنے SMTP اکاؤنٹ کے ذریعے، جیسے Amazon SES، Postmark یا آپ کا اپنا ریلے، اسی پتے سے اور اسی دھاگے میں بھیجا جاتا ہے۔ جوابات Worker سے نہیں گزرتے۔
انکار بھیجنے والے تک پہنچتے ہیں
جب Yuva کسی پیغام کو مستقل طور پر مسترد کرتا ہے، مثلاً نامعلوم پتا، بلاک شدہ بھیجنے والا یا بہت بڑا پیغام، تو Worker اسے رد کر دیتا ہے اور بھیجنے والے کو Yuva کی وجہ کے ساتھ مستقل SMTP خرابی ملتی ہے۔
اگر Yuva تک پہنچا نہ جا سکے
اگر Yuva سرور کی خرابی کے ساتھ جواب دے، 20 سیکنڈ میں جواب نہ دے یا اس تک پہنچا نہ جا سکے، تو آپ نے FALLBACK_FORWARD سیٹ کیا ہو تو Worker پیغام کو آپ کے منتخب کردہ پتے پر فارورڈ کر سکتا ہے۔ وہ پتا 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 میں پائپ کر سکتا ہے۔ درخواست کی شکل Worker کی README میں دستاویزی ہے۔
سوال و جواب
کیا مجھے میل سرور چلانا ہوگا؟
آنے والی ڈاک کے لیے نہیں۔ 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 Cloudflare کا DMARC نتیجہ استعمال کرتا ہے؟
جی ہاں، جب آپ YUVA_INGRESS_AUTHSERV_ID کو mx.cloudflare.net پر سیٹ کرتے ہیں۔ تب Yuva وہ DMARC فیصلہ پڑھتا ہے جو Email Routing شامل کرتا ہے۔ DMARC میں ناکام ہونے والی نئی گفتگو اسپام کے طور پر نشان زد ہوتی ہے۔
Cloudflare، Cloudflare لوگو اور Cloudflare Workers ریاستہائے متحدہ اور دیگر دائرۂ اختیار میں Cloudflare, Inc. کے ٹریڈ مارک اور/یا رجسٹرڈ ٹریڈ مارک ہیں۔ Yuva ایک آزاد اوپن سورس پروجیکٹ ہے، جو Cloudflare سے وابستہ نہیں اور نہ اس کا منظور کردہ ہے۔