مسیرهای ورودی
پیکربندی قوانین مسیریابی برای هدایت ایمیلهای دریافتی به ذخیرهسازی، وبهوک یا سایر اقدامات
مسیرها تعیین میکنند که MailLand چگونه ایمیلهای دریافتی یک دامنه را پردازش میکند. هر مسیر با
بخش محلی گیرنده (بخشی از آدرس پیش از @) تطبیق داده میشود و یک یا چند اقدام را اجرا میکند:
ذخیرهسازی، تحویل به وبهوک، ارسال به جلو، رد در سطح SMTP، یا حذف. مسیرها به ترتیب اولویت (عدد
کوچکتر ابتدا) ارزیابی میشوند و اولین مسیر تطبیقیافته برنده میشود.
مسیرها فقط با بخش محلی آدرس گیرنده تطبیق داده میشوند. هیچ تطبیقی بر اساس فرستنده، موضوع یا سایر
سرصفحهها وجود ندارد: یک مسیر نمیتواند بر اساس from یا subject فیلتر کند.
انواع تطبیق
| نوع تطبیق | توضیحات |
|---|---|
exact | بخش محلی دقیقاً با الگو برابر است |
prefix | بخش محلی با الگو شروع میشود |
suffix | بخش محلی با الگو پایان مییابد |
contains | بخش محلی شامل الگو است |
plusaddressing | بخش محلی، الگو بههمراه +هر چیزی است (support با support+ticket123 تطبیق دارد) |
catchall | با هر گیرندهای تطبیق دارد؛ نیازی به الگو نیست |
regex | بخش محلی با الگو بهصورت عبارت باقاعده تطبیق دارد (حداکثر ۲۰۰ کاراکتر، مهلت ۱ ثانیه) |
تطبیق به بزرگی و کوچکی حروف حساس نیست و همیشه روی بخش محلی انجام میشود: هر دوی
[email protected] و [email protected] با مسیری با الگوی support که به همان
دامنه محدود شده، تطبیق دارند.
نوع تطبیق regex به پلنی نیاز دارد که مسیریابی ورودی مبتنیبر عبارت باقاعده را پشتیبانی کند (امروز
Pro و Max، نه Free). ایجاد مسیری با matchType: "regex" یا بهروزرسانی مسیری موجود بهگونهای که
نوع تطبیق آن به regex تغییر کند، در پلنی که این قابلیت را ندارد، خطای 400 PLAN_LIMIT_REACHED
برمیگرداند. مسیری که از پیش regex است حتی پس از تنزل پلن فضای کاری همچنان تطبیق مییابد، و
ویرایش آن بدون تغییر نوع تطبیق تحت تأثیر قرار نمیگیرد.
اقدامات مسیر
فیلد actions یک مسیر، فهرستی از یک یا چند مقدار رشتهای زیر است:
| اقدام | توضیحات |
|---|---|
store | ذخیره ایمیل پردازششده برای بازیابی از طریق API و داشبورد |
webhook | تحویل ایمیل پردازششده به یک وبهوک (نیازمند webhookId) |
forward | ارسال یک نسخه از ایمیل به forwardToEmail، از همان مسیر عادی ارسال |
reject | رد پیام در سطح SMTP با rejectStatus/rejectMessage |
drop | پذیرش پیام از طریق SMTP و سپس حذف بیسروصدای آن، بدون ذخیرهسازی، بدون وبهوک |
unsubscribe | رفتار با آدرس بهعنوان صندوق List-Unsubscribe؛ پایانی است، به ادامه مراجعه کنید |
store و webhook میتوانند با یکدیگر و با forward ترکیب شوند. اما reject، drop و
unsubscribe پایانی هستند: هر یک باید تنها اقدام مسیر باشد؛ API درخواستی را که یکی از اینها
را با اقدام دیگری ترکیب کند، رد میکند.
نسخهٔ فورواردشده از طریق رله خام SMTP ارسال نمیشود، بلکه از همان مسیر ارسالی عبور میکند که هر ایمیل تراکنشی دیگر از آن میگذرد؛ به همین دلیل به رضایت مقصد نیاز دارد (در ادامه)، در سهمیهٔ ارسال شما محاسبه میشود و در گزارش پیامهای شما مانند هر ارسال دیگری نمایش داده میشود.
مقصدهای فوروارد
پیش از آنکه هیچ ایمیلی به یک آدرس فوروارد شود، مالک آن آدرس باید آن را تأیید کند: مگر اینکه آدرس روی یکی از دامنههای خودتان باشد که بهطور کامل برای ارسال تأیید شده است. برای یک آدرس بیرونی راهی برای دور زدن این قاعده وجود ندارد: این کار مالک مقصد را از دریافت ایمیلی که هرگز به آن رضایت نداده محافظت میکند و اعتبار ارسال شما را در برابر آدرسی که برگشت میخورد یا شکایت میکند حفظ میکند.
هنگام ایجاد یا بهروزرسانی مسیری با forward در actions، MailLand بهطور خودکار:
۱. یک رکورد مقصد فوروارد برای forwardToEmail میسازد (یا از رکورد موجود استفاده میکند)، مختص
مستأجر شما: همان آدرس در تمام مسیرهایی که به آن فوروارد میکنند بهخاطر سپرده میشود.
۲. اگر آدرس نیاز به تأیید داشته باشد و پیشتر از آن درخواست نشده باشد، یک ایمیل تأیید حاوی لینک ارسال میکند.
ذخیرهٔ خود مسیر همیشه موفق میشود؛ شکست ایمیل تأیید باعث شکست ذخیرهٔ مسیر نمیشود: مقصد فقط
pending باقی میماند (چیزی به آن فوروارد نمیشود) تا زمانی که تأیید را دوباره ارسال کنید.
لینک تأیید
لینک درون ایمیل تأیید ۷ روز اعتبار دارد و یکبارمصرف است: بهمحض اینکه گیرنده تأیید یا رد
کند، بازدید مجدد از لینک فقط همان تصمیم را نشان میدهد، با بازدید دوباره قابل بازگشت نیست. لینکی
که منقضی شده و هرگز تصمیمی برایش گرفته نشده، در صورت باز شدن دوباره 410 Gone برمیگرداند.
- تأیید: از این پس ایمیل فورواردشده از این مستأجر به آن آدرس ارسال خواهد شد.
- رد: نهایی است. دیگر هیچگاه چیزی برای این مستأجر به آن آدرس فوروارد نمیشود و مستأجر نمیتواند دوباره برای آن درخواست تأیید بدهد.
دریافت یک مقصد فوروارد
GET https://api.mail.land/v1/transactional/inbound/forward-destinations/{destinationId}{
"id": "f2k9m3q7p4w8x1",
"email": "[email protected]",
"status": "pending",
"confirmedVia": null,
"lastSentAt": "2026-09-26T10:00:00Z",
"confirmedAt": null,
"declinedAt": null
}مقدار status یکی از pending، confirmed یا declined است. مقدار confirmedVia وقتی مالک از
طریق ایمیل تأیید کرده باشد link است، وقتی آدرس روی یکی از دامنههای خودتان که برای ارسال تأیید
شده باشد و نیازی به تأیید نداشته باشد verified_domain است، و در غیر این صورت null است. پاسخ یک
مسیر نیز همین شیء را زیر forwardDestination حمل میکند (به پاسخ مسیر در ادامه مراجعه کنید).
ارسال دوبارهٔ تأیید
POST https://api.mail.land/v1/transactional/inbound/forward-destinations/{destinationId}/resendفقط برای مقصدی که هنوز pending است و واقعاً به لینک نیاز دارد (آدرسی روی یکی از دامنههای ارسال
تأییدشدهٔ خودتان مقدار 409 FORWARD_DESTINATION_NO_CONFIRMATION_NEEDED برمیگرداند، زیرا چیزی
برای ارسال دوباره وجود ندارد). دارای محدودیت نرخ: حداکثر یکبار در هر ۵ دقیقه و ۵ بار در روز برای
هر مقصد، و ۵۰ بار در روز برای کل مستأجر. عبور از هر یک از این محدودیتها مقدار
429 FORWARD_CONFIRMATION_RATE_LIMITED برمیگرداند.
هیچ راهی برای لغو رد یک مقصد از طریق API وجود ندارد؛ پس از آنکه مقصدی رد شد، آن آدرس برای آن مستأجر برای همیشه رد شده باقی میماند.
ایجاد یک مسیر
مسیرها به یک دامنه تعلق دارند و زیر همان دامنه ایجاد میشوند.
POST https://api.mail.land/v1/transactional/inbound/domains/{domainId}/routes{
"name": "Support Inbox",
"matchType": "exact",
"matchPattern": "support",
"actions": ["store", "webhook"],
"webhookId": "w4k8m2q7p9x3z1",
"priority": 10
}| فیلد | نوع | الزامی | توضیحات |
|---|---|---|---|
name | string | بله | نام مسیر |
matchType | string | بله | یکی از انواع تطبیق بالا |
matchPattern | string | بله | الگو برای تطبیق با بخش محلی (برای catchall نادیده گرفته میشود، حداکثر ۶۴ کاراکتر، برای regex حداکثر ۲۰۰) |
actions | string[] | بله | یک یا چند مورد از store، webhook، forward، reject، drop، unsubscribe |
webhookId | string | مشروط | شناسهٔ عمومی یک وبهوک موجود؛ زمانی که actions شامل webhook باشد الزامی است. مسیرها هرگز وبهوک را درونخطی ایجاد نمیکنند: ابتدا آن را در صفحهٔ Webhooks بسازید |
forwardToEmail | string | مشروط | مقصد برای forward؛ وقتی actions شامل forward باشد الزامی است. باید آدرسی خالص باشد (بدون نام نمایشی، بدون علامتهای زاویهای). دامنهٔ خودِ مسیر باید بهطور کامل برای ارسال تأیید شده باشد، چون نسخهٔ فورواردشده از آن ارسال میشود، وگرنه درخواست با خطای 400 FORWARD_DOMAIN_NOT_VERIFIED رد میشود. خودِ مقصد نیز باید جداگانه تأیید کند، مگر اینکه روی یکی از دامنههای خودتان که برای ارسال تأیید شده باشد قرار داشته باشد (به مقصدهای فوروارد مراجعه کنید) |
rejectStatus | string | خیر | وضعیت SMTP برای reject، مانند 550 یا 550 5.1.1 (پیشفرض 550 5.1.1) |
rejectMessage | string | خیر | متن رد SMTP برای reject |
priority | int | خیر | عدد کوچکتر = زودتر ارزیابی میشود. پیشفرض یک واحد بیشتر از بالاترین اولویت فعلی دامنه است. باید برای هر دامنه یکتا باشد |
curl -X POST https://api.mail.land/v1/transactional/inbound/domains/k3v9x2m8q1w7z4/routes \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"name": "Support Inbox",
"matchType": "exact",
"matchPattern": "support",
"actions": ["store", "webhook"],
"webhookId": "w4k8m2q7p9x3z1",
"priority": 10
}'پاسخ
{
"id": "r7k3m9q2p4w8x1",
"name": "Support Inbox",
"domainId": "k3v9x2m8q1w7z4",
"domainName": "yourdomain.com",
"priority": 10,
"isEnabled": true,
"matchType": "Exact",
"matchPattern": "support",
"actions": ["store", "webhook"],
"webhookId": "w4k8m2q7p9x3z1",
"webhookName": "Support Webhook",
"webhookUrl": "https://yourapp.com/webhooks/support",
"forwardToEmail": null,
"forwardDestination": null,
"rejectStatus": null,
"rejectMessage": null,
"createdAt": "2026-02-17T12:00:00Z",
"updatedAt": "2026-02-17T12:00:00Z"
}درخواستها matchType را با هر حروفبزرگوکوچکی میپذیرند؛ اما پاسخها همیشه نام enum را با حرف
بزرگ ابتدایی برمیگردانند: Exact، Prefix، Suffix، Contains، PlusAddressing، CatchAll،
Regex. مقدار matchType در پاسخ را با رشتهای با حروف کوچک مقایسه نکنید.
مقدار forwardDestination فقط زمانی پر میشود که actions شامل forward باشد؛ همان شیئی را حمل
میکند که در دریافت یک مقصد فوروارد توضیح داده شد:
{
"...": "...",
"actions": ["store", "forward"],
"forwardToEmail": "[email protected]",
"forwardDestination": {
"id": "f2k9m3q7p4w8x1",
"email": "[email protected]",
"status": "pending",
"confirmedVia": null,
"lastSentAt": "2026-09-26T10:00:00Z",
"confirmedAt": null,
"declinedAt": null
}
}فهرست مسیرهای یک دامنه
GET https://api.mail.land/v1/transactional/inbound/domains/{domainId}/routesهمهٔ مسیرهای دامنه را، بهترتیب اولویت (کوچکترین ابتدا)، بازمیگرداند.
curl https://api.mail.land/v1/transactional/inbound/domains/k3v9x2m8q1w7z4/routes \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."{
"items": [
{ "id": "r7k3m9q2p4w8x1", "name": "Support Inbox", "priority": 10, "isEnabled": true, "..." : "..." }
],
"totalCount": 1
}فهرست همهٔ مسیرها
برای فهرست مسیرها در همهٔ دامنههای یک تننت، در عوض از نقطهٔ پایانی صفحهبندیشده با نشانگر استفاده کنید:
GET https://api.mail.land/v1/transactional/inbound/routes| پارامتر | نوع | پیشفرض | توضیحات |
|---|---|---|---|
cursor | string | - | نشانگر مبهم از nextCursor صفحهٔ قبلی. برای صفحهٔ اول حذف شود |
limit | int | ۵۰ | تعداد آیتم در هر صفحه |
دریافت جزئیات یک مسیر
GET https://api.mail.land/v1/transactional/inbound/routes/{routeId}curl https://api.mail.land/v1/transactional/inbound/routes/r7k3m9q2p4w8x1 \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."بهروزرسانی یک مسیر
PUT https://api.mail.land/v1/transactional/inbound/routes/{routeId}بدنهٔ درخواست مانند درخواست ایجاد است، اما هر فیلد اختیاری است: فقط فیلدهایی که ارسال میکنید بهروزرسانی میشوند.
curl -X PUT https://api.mail.land/v1/transactional/inbound/routes/r7k3m9q2p4w8x1 \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"matchPattern": "help",
"priority": 5
}'فعال یا غیرفعالکردن یک مسیر
مقدار isEnabled را بدون تغییر سایر فیلدها معکوس میکند. بدون بدنهٔ درخواست.
POST https://api.mail.land/v1/transactional/inbound/routes/{routeId}/togglecurl -X POST https://api.mail.land/v1/transactional/inbound/routes/r7k3m9q2p4w8x1/toggle \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."تغییر ترتیب مسیرها
اولویت همهٔ مسیرهای یک دامنه را یکجا بهروزرسانی کنید، با ارسال شناسههای مسیر به ترتیب دلخواه: اولین شناسه اولویت ۱، دومی اولویت ۲ میشود و به همین ترتیب ادامه مییابد.
POST https://api.mail.land/v1/transactional/inbound/domains/{domainId}/routes/reorder{
"routeIds": ["r7k3m9q2p4w8x1", "m2p8w4x1k7q3z9", "x4k1p7m3q9w2z8"]
}curl -X POST https://api.mail.land/v1/transactional/inbound/domains/k3v9x2m8q1w7z4/routes/reorder \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"routeIds": ["r7k3m9q2p4w8x1", "m2p8w4x1k7q3z9", "x4k1p7m3q9w2z8"]
}'آزمایش یک مسیر
بدون پردازش یک ایمیل واقعی، بررسی کنید کدام مسیر با یک آدرس گیرندهٔ مشخص تطبیق دارد.
POST https://api.mail.land/v1/transactional/inbound/domains/{domainId}/routes/test{
"emailAddress": "[email protected]"
}curl -X POST https://api.mail.land/v1/transactional/inbound/domains/k3v9x2m8q1w7z4/routes/test \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"emailAddress": "[email protected]"
}'{
"matched": true,
"matchedRouteId": "r7k3m9q2p4w8x1",
"matchedRouteName": "Support Inbox",
"actions": ["store", "webhook"]
}اگر هیچ مسیری تطبیق نداشت، پاسخ 200 با matched: false است و matchedRouteId/matchedRouteName/actions همگی null هستند. 404 به این معناست که دامنه یافت نشد، یا آدرس آزمایششده نامعتبر است (بدون @).
حذف یک مسیر
DELETE https://api.mail.land/v1/transactional/inbound/routes/{routeId}curl -X DELETE https://api.mail.land/v1/transactional/inbound/routes/r7k3m9q2p4w8x1 \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."نمونه مسیرها
مسیر همهشمول (catch-all): ذخیرهٔ هر گیرندهٔ تطبیقنیافته:
{
"name": "Catch All",
"matchType": "catchall",
"matchPattern": "*",
"actions": ["store"],
"priority": 999
}آدرسدهی با علامت جمع (plus-addressing): هدایت همهٔ انواع support+*@yourdomain.com به یک
وبهوک:
{
"name": "Support Tickets",
"matchType": "plusaddressing",
"matchPattern": "support",
"actions": ["store", "webhook"],
"webhookId": "w4k8m2q7p9x3z1",
"priority": 5
}رد در SMTP: رد ایمیل ارسالی به صندوقی بازنشسته، پیش از پذیرش آن:
{
"name": "Retired Mailbox",
"matchType": "exact",
"matchPattern": "old-team",
"actions": ["reject"],
"rejectStatus": "550 5.1.1",
"rejectMessage": "Mailbox does not exist",
"priority": 1
}مسیرها به ترتیب اولویت (کوچکترین عدد ابتدا) ارزیابی میشوند. مسیرهای اختصاصی را با اعداد اولویت کوچکتر و مسیرهای همهشمول را با بالاترین عدد قرار دهید تا در آخر اجرا شوند.
نسخهٔ فورواردشده چه شکلی دارد
نسخهٔ فورواردشده یک ایمیل تراکنشی تازه و معمولی است، نه رلهای خام از بایتهای اصلی، که از دامنهٔ تأییدشدهٔ شما ارسال میشود تا بتواند DKIM و DMARC را نزد ارائهدهندهٔ صندوق پستی مقصد پاس کند:
- From: بهصورت
"<نام فرستندهٔ اصلی> via <آدرس تطبیقیافته>@<دامنهٔ شما>"، مثلاً"Jane Doe via [email protected]". نام نمایشیای که شبیه آدرس باشد (شامل@،<یا>) با آدرس خالص اصلی جایگزین میشود تا هیچ نسخهای نتواند زیر DKIM شما جای یک برند دیگر را بگیرد. - Reply-To: اگر پیام اصلی
Reply-Toداشته باشد همان، وگرنه آدرس فرستندهٔ اصلی، تا پاسخها به نویسندهٔ واقعی برسد، نه به شما. - بدون ردیابی: ردیابی بازشدن و کلیک در نسخهٔ فورواردشده همیشه خاموش است، صرفنظر از تنظیمات ردیابی فضای کاری شما.
- بدون پانوشت برند: پانوشتی که ممکن است سایر ارسالها در پلن رایگان داشته باشند هرگز افزوده نمیشود.
- پیوستها: با همان قواعد یک ارسال بیرونی از طریق API فیلتر میشوند (نوع، تعداد، حجم کل). هرچه کنار گذاشته شود در یادداشتی در بالای نسخه ذکر میشود: "Forwarded without N attachment(s) that exceed the outbound attachment limits: ..."، نسخه در هر صورت میرسد، فقط بدون آن بخشها.
- برچسب: هر نسخهٔ فورواردشده برچسب
inbound-forwardرا دارد تا بتوانید آنها را در گزارش عادی پیامهای خود پیدا کنید؛ وضعیت تحویل آن (queued، sent، delivered، bounced و غیره) همان وضعیتی است که هر ارسال تراکنشی دیگر میگیرد، چون از همان مسیر تحویل عبور میکند. - مصرف: هر نسخهٔ فورواردشده بهعنوان یک ارسال در سهمیه و صورتحساب پلن شما محاسبه میشود و بهصورت یک ردیف جداگانهٔ «Inbound forward» در مصرف نمایش داده میشود، جدا از ارسالهای API، SMTP، کمپین و اتوماسیون.
چه چیزی هرگز فوروارد نمیشود
پیامی که با یک مسیر forward تطبیق دارد، در موارد زیر فوروارد نمیشود و هرگز فاکتور نمیشود:
- بهعنوان اسپم علامتگذاری شده باشد، یا فرستنده بهعنوان اسپم بلاکلیست شده باشد.
- در DMARC، بر پایهٔ سیاست مؤثر دامنهٔ فرستنده که
quarantineیاrejectاست، رد شود؛ این سیاست با بالا رفتن از دامنهٔ فرستنده و یافتن نزدیکترین رکورد قابلاعمال تعیین میشود، بهطوریکهsp=دامنهٔ فرعی برp=دامنهٔ سازمانی آن اولویت دارد و رکوردt=y(آزمایشی) یاpct=0یک سطح پایینتر از سیاست در نظر گرفته میشود؛ چون فورواردکردن آن به معنای امضای دوبارهٔ پیامی است که فرستندهاش صراحتاً از گیرندگان خواسته آن را رد کنند. - خودِ آن یا بدنهٔ HTML/متنیاش از حدود حجم خروجی پلتفرم فراتر رود.
- فورواردکردن آن یک حلقه ایجاد کند: مقصد یکی از گیرندگان خودِ پیام باشد، یا پیام از پیش تعداد
زیادی hop یا هدر
Receivedداشته باشد.
نسخهای که واجد شرایط است اما موقتاً قابل ارسال نیست (تأخیر یک سیاست، پنجرهٔ سهمیه، یک قطعی)، تا سقف ۲۴ ساعت با backoff دوباره تلاش میشود و سپس بدون ارسال منقضی میشود. مسیری که غیرفعال یا حذف شود، یا مقصدش پس از دریافت یک پیام تغییر کند، هر نسخهٔ همچنان منتظر را نیز متوقف میکند: پیکربندی فعلی مسیر همیشه مرجع است.
بررسی نتیجهٔ یک فوروارد
هر ایمیل واردی که با یک مسیر forward مطابقت داشته باشد، یک آرایهٔ forwards در پاسخ جزئیات آن
(GET /v1/transactional/inbound/emails/{id}) دارد: یک مورد برای هر مقصدی که پیام برای فوروارد به آن در صف قرار
گرفته، تا ببینید واقعاً چه اتفاقی افتاده، نه فقط جایی که پیکربندی شده بود.
"forwards": [
{
"destination": "[email protected]",
"status": "Admitted",
"reason": null,
"omittedAttachmentCount": 0,
"messageId": "m_01hz3k...",
"createdAt": "2026-09-26T10:00:00Z",
"updatedAt": "2026-09-26T10:00:02Z"
}
]| فیلد | نوع | توضیح |
|---|---|---|
destination | رشته | نشانی مقصد فوروارد |
status | رشته | یکی از وضعیتهای زیر |
reason | رشته | null | کد جزئیات قابلخواندن توسط ماشین (مثلاً hop_limit)، یا null |
omittedAttachmentCount | عدد | پیوستهایی که به دلیل عبور از محدودیتهای پیوست خروجی از نسخه حذف شدهاند |
messageId | رشته | null | شناسهٔ پیام نسخهٔ فورواردشده پس از پذیرش، در غیر این صورت null |
createdAt / updatedAt | رشته | زمانمهرهای ISO-8601 برای رکورد فوروارد |
status یکی از موارد زیر است:
| وضعیت | معنا |
|---|---|
Pending | همراه با پیام وارد شده نوشته شده؛ هنوز توسط کارگر فوروارد گرفته نشده |
Processing | توسط کارگر فوروارد گرفته شده؛ در حال انجام |
Deferred | یک رد موقت (تأخیر سیاست، نرخ، پنجرهٔ سهمیه، قطعی)؛ با backoff تا ۲۴ ساعت دوباره تلاش میشود |
Admitted | از طریق خط ارسال معمول ارسال شده: messageId نسخه را مشخص میکند و وضعیت تحویل خودِ آن (در صف/ارسالشده/تحویلشده/برگشتی) مرجع است |
SkippedLoop | محافظت در برابر حلقه: محدودیت hop، تعداد زیاد هدر Received، یا مقصد یکی از گیرندگان خودِ پیام است |
SkippedSpam | پیام به عنوان اسپم علامتگذاری شده، یا فرستنده در فهرست مسدود به عنوان اسپم است |
SkippedAuthFail | DMARC بر پایهٔ سیاست مؤثر دامنهٔ فرستنده شکست خورده (quarantine یا reject، با رعایت sp= دامنهٔ فرعی) |
SkippedTooLarge | پیام از سقف اندازهٔ فوروارد خروجی فراتر رفته |
RefusedSuppressed | مقصد سرکوب شده، یا توسط محافظت گیرنده رد شده |
RefusedDomainNotVerified | دامنهٔ مسیر برای ارسال تأیید نشده (یا دیگر تأیید نیست) |
RefusedPolicy | یک رد نهایی سیاستی یا حسابی |
RefusedRouteInactive | مسیر غیرفعال شده، حذف شده، عمل forward را از دست داده، یا پس از دریافت پیام مقصدش تغییر کرده |
RefusedInvalid | پیام ذخیرهشده نتوانست به نسخهای قابلارسال تبدیل شود |
Expired | هنگام بسته شدن پنجرهٔ تلاش مجدد ۲۴ ساعته هنوز Deferred بود |
RefusedDestinationUnconfirmed | مقصد هنوز تأیید نکرده (به مقصدهای فوروارد مراجعه کنید) |
RefusedDestinationDeclined | مالک مقصد رد کرده؛ هرگز چیزی به آن نشانی فوروارد نمیشود |
Pending، Processing و Deferred تنها وضعیتهای غیرنهایی هستند، هر مقدار دیگری نهایی است.
پاسخهای خطای فوروارد
| وضعیت | کد | توضیحات |
|---|---|---|
400 | VALIDATION_FAILED (فیلد forwardToEmail) | هنگام ایجاد: actions شامل forward است اما forwardToEmail خالی است |
400 | FORWARD_DESTINATION_REQUIRED | هنگام بهروزرسانی (PUT): مسیر مؤثر نهایی فوروارد میکند اما forwardToEmail ندارد |
400 | FORWARD_DOMAIN_NOT_VERIFIED | دامنهٔ مسیر بهطور کامل برای ارسال تأیید نشده، بنابراین هرگز نمیتوان نسخهٔ فورواردشدهای از آن ارسال کرد |
404 | RESOURCE_NOT_FOUND | مقصد فوروارد پیدا نشد |
409 | FORWARD_DESTINATION_NOT_PENDING | درخواست ارسال دوباره برای مقصدی که پیشتر تأیید یا رد کرده |
409 | FORWARD_DESTINATION_NO_CONFIRMATION_NEEDED | درخواست ارسال دوباره برای مقصدی روی یکی از دامنههای ارسال تأییدشدهٔ خودتان |
410 | FORWARD_CONFIRMATION_EXPIRED | لینک تأیید در حالی که هنوز تصمیمی نگرفته بود منقضی شد (۷ روز) |
409 | FORWARD_CONFIRMATION_ALREADY_DECIDED | لینک برای تصمیم دیگر استفاده شده بود |
429 | FORWARD_CONFIRMATION_RATE_LIMITED | درخواست ارسال دوباره خیلی زود انجام شد، یا سقف روزانهٔ ارسال دوباره رسیده است |
پاسخهای خطا
| وضعیت | کد | توضیحات |
|---|---|---|
400 | VALIDATION_FAILED | فیلدهای الزامی مفقود، matchType/actions نامعتبر، یا ترکیب یک اقدام پایانی با اقدامی دیگر |
400 | INVALID_REQUEST | مسیری با همین priority از قبل برای این دامنه وجود دارد، یا webhookId ارجاعشده یافت نشد |
400 | PLAN_LIMIT_REACHED | ایجاد مسیری با matchType: "regex"، یا بهروزرسانی مسیری بهگونهای که نوع تطبیق آن به regex تغییر کند، در پلنی که از مسیرهای regex پشتیبانی نمیکند (امروز Free) |
403 | FORBIDDEN | مجوزهای ناکافی |
404 | RESOURCE_NOT_FOUND | دامنه یا مسیر یافت نشد (نقطهٔ پایانی آزمایش: همچنین آدرس نامعتبر بدون @؛ عدم تطبیق یعنی 200 با matched: false، نه 404) |
گامهای بعدی
- Inbound Overview: نحوهٔ کار پردازش ایمیل ورودی
- Inbound Webhooks: قالب و تحویل بار وبهوک
- Domains: پیکربندی رکوردهای MX برای ایمیل ورودی