تنظیمات DNS
پیکربندی رکوردهای SPF، DKIM و DMARC برای دامنه ارسال
پس از افزودن دامنه، رکوردهای DNS لازم برای احراز هویت ایمیل را پیکربندی کنید. MailLand به رکوردهای SPF، DKIM و DMARC نیاز دارد؛ هر سه باید پیش از امکان ارسال تأیید شوند. رکورد مسیر بازگشت (برگشتی) سفارشی بخشی از تأیید دامنه است و برای دامنههای جدید بهصورت پیشفرض روشن است؛ ارسال را مسدود نمیکند و تا زمان تأیید، MailLand از Return-Path پیشفرض خود استفاده میکند. دامنهٔ ردیابی اختیاری است.
دریافت دستورالعملهای DNS
رکوردهای دقیق مخصوص دامنه خود را دریافت کنید:
GET https://api.mail.land/v1/domains/{id}/dns-instructionsبا استفاده از Authorization: Bearer <token> یا X-API-Key: <api key> احراز هویت کنید.
curl https://api.mail.land/v1/domains/k3v9x2m8q1w7z4/dns-instructions \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."{
"domain": "yourdomain.com",
"spfRecord": {
"recordType": "TXT",
"hostName": "@",
"value": "v=spf1 include:spf.mlnd.net ~all",
"status": "pending",
"instructions": "Add this TXT record to your domain's root. If you have an existing SPF record, add 'include:spf.mlnd.net' to it instead of creating a new record."
},
"dkimRecord": {
"recordType": "TXT",
"hostName": "mlnd._domainkey",
"value": "v=DKIM1; k=rsa; p=MIIBIjANBgkq...",
"status": "pending",
"instructions": "Add this TXT record with hostname 'mlnd._domainkey' to enable DKIM signing."
},
"dmarcRecord": {
"recordType": "TXT",
"hostName": "_dmarc",
"value": "v=DMARC1; p=quarantine; pct=100; adkim=r; aspf=r; rua=mailto:[email protected]; sp=none",
"status": "pending",
"instructions": "Add this TXT record at the '_dmarc' subdomain to enable DMARC policy. The rua tag sends aggregate reports to a MailLand address. MailLand stores the reports for this domain for your plan's retention period and makes their DMARC pass rate, sending sources and dispositions available through the API (GET /v1/domains/{id}/dmarc/summary and /dmarc/sources). To also receive the reports yourself, add your own address to the rua tag."
},
"trackingRecord": {
"recordType": "CNAME",
"hostName": "track",
"value": "track.mlnd.net",
"status": "pending",
"instructions": "Custom Tracking Links"
},
"bounceRecords": [
{
"recordType": "CNAME",
"hostName": "bounce",
"value": "bounce.mlnd.net",
"status": "pending",
"instructions": "Bounce Domain (Return-Path) DNS-only (not proxied): a proxied record hides the CNAME from mail servers."
}
],
"notes": [
"DNS changes can take up to 48 hours to propagate globally.",
"After adding records, click 'Verify Domain' to check the configuration.",
"All three records (SPF, DKIM, DMARC) must be verified to start sending emails.",
"Use your DNS provider's documentation for specific instructions on adding TXT records."
]
}هر رکورد شامل یک فیلد status است که نشان میدهد آیا در DNS شناسایی شده است:
| وضعیت | توضیح |
|---|---|
pending | هنوز بررسی نشده |
valid | رکورد یافت شد و درست است |
invalid | رکورد وجود ندارد یا نادرست است |
trackingRecord فقط وقتی دامنه ردیابی سفارشی روشن باشد و bounceRecords فقط وقتی دامنه برگشتی سفارشی روشن باشد برگردانده میشود.
رکوردهای ردیابی و برگشتی تا زمان تأیید، pending نشان داده میشوند، حتی پس از یک بررسی ناموفق.
رکوردهای الزامی
SPF (چارچوب سیاست فرستنده)
SPF به سرورهای MailLand اجازه میدهد به نمایندگی از دامنه شما ایمیل ارسال کنند.
| فیلد | مقدار |
|---|---|
| نوع | TXT |
| نام | yourdomain.com (یا @) |
| مقدار | v=spf1 include:spf.mlnd.net ~all |
| TTL | 3600 |
اگر از قبل یک رکورد SPF دارید، عبارت include:spf.mlnd.net را قبل از مکانیزم ~all یا -all اضافه کنید. SPF تنها یک رکورد TXT در هر دامنه مجاز است: چندین رکورد SPF باعث خطای احراز هویت میشوند.
مثال SPF موجود:
# Before
v=spf1 include:_spf.google.com ~all
# After
v=spf1 include:_spf.google.com include:spf.mlnd.net ~allDKIM (ایمیل شناساییشده با کلیدهای دامنه)
DKIM یک امضای رمزنگاری به هر ایمیل اضافه میکند و به گیرندگان اجازه میدهد تأیید کنند که پیام در حین انتقال تغییر نکرده است.
| فیلد | مقدار |
|---|---|
| نوع | TXT |
| نام | mlnd._domainkey.yourdomain.com |
| مقدار | v=DKIM1; k=rsa; p=MIIBIjANBgkq... (کلید عمومی شما) |
| TTL | 3600 |
MailLand هنگام افزودن دامنه یک جفت کلید RSA 2048 بیتی تولید میکند. سلکتور پیشفرض mlnd است. مقدار کامل کلید عمومی در پاسخ دستورالعملهای DNS ارائه میشود.
کلیدهای عمومی DKIM طولانی هستند (تقریباً ۴۰۰ کاراکتر). برخی ارائهدهندگان DNS رکوردهای TXT را به تکههای ۲۵۵ کاراکتری تقسیم میکنند. اکثر ارائهدهندگان این کار را بهطور خودکار انجام میدهند: اگر ارائهدهنده شما این کار را نمیکند، مقدار را در گیومههای دوگانه بپیچید تا ارائهدهنده آن را به هم متصل کند.
DMARC (الزامی)
DMARC به سرورهای ایمیل دریافتکننده میگوید هنگام شکست بررسیهای SPF یا DKIM چه باید بکنند. DMARC الزامی است: بدون رکورد _dmarc که با v=DMARC1 شروع شود و p= داشته باشد، تأیید شکست میخورد.
| فیلد | مقدار |
|---|---|
| نوع | TXT |
| نام | _dmarc.yourdomain.com |
| مقدار | از مقدار دقیق پاسخ dns-instructions بالا استفاده کنید (شامل نشانی گزارشدهی منحصربهفرد برای هر دامنه) |
| TTL | 3600 |
گزینههای سیاست DMARC:
| سیاست | رفتار |
|---|---|
p=none | فقط نظارت: هیچ اقدامی در صورت شکست (مناسب برای راهاندازی اولیه) |
p=quarantine | ارسال شکستها به پوشه هرزنامه (نقطه شروع توصیهشده) |
p=reject | مسدود کردن کامل شکستها (سختگیرانهترین، بهترین حفاظت) |
Mail.Land گزارشهای تجمیعی DMARC دامنهٔ شما را پردازش میکند. مقدار پاسخ dns-instructions را همانطور که هست منتشر کنید. نشانی rua آن (dmarc+<id>@rpt.mail.land) گیرندهٔ گزارشهای Mail.Land است. گزارشهای آن دامنه یا زیردامنههایش در طول دوره نگهداری پلن شما ذخیره میشوند و نرخ عبور DMARC، منابع ارسال و نتیجهٔ اعمال سیاست آنها از راه API در دسترس است: GET /v1/domains/{id}/dmarc/summary و GET /v1/domains/{id}/dmarc/sources. هنوز صفحهای در داشبورد برای آنها نیست. برای اینکه گزارشها را خودتان هم دریافت کنید، نشانی خودتان را به همان تگ اضافه کنید: rua=mailto:dmarc+<id>@rpt.mail.land,mailto:[email protected].
رکوردهای اختیاری
مسیر بازگشت سفارشی (دامنه برگشتی)
دامنهٔ برگشتی سفارشی بخشی از تأیید دامنه است و برای هر دامنهٔ جدید بهصورت پیشفرض روشن است: MailLand ایمیلهای شما را با Return-Path (نشانی «mailed-by») روی زیردامنه خودتان ارسال میکند تا SPF با دامنه شما همراستا شود. یک رکورد CNAME اضافه کنید:
| فیلد | مقدار |
|---|---|
| نوع | CNAME |
| نام | bounce.yourdomain.com |
| مقدار | bounce.mlnd.net |
| TTL | 3600 |
سرورهای ایمیل از طریق این CNAME به سرور ایمیل و رکورد SPF مربوط به MailLand میرسند؛ بنابراین در این نام رکورد MX یا TXT اضافه نکنید.
این رکورد باید فقط DNS (بدون پروکسی) باشد. رکورد پروکسیشده، مانند ابر نارنجی Cloudflare، CNAME را از سرورهای ایمیل پنهان میکند و تأیید ناموفق میشود. از رکورد MX با مقدار bounce.mlnd.net استفاده نکنید: این میزبان ایمیل دریافت نمیکند.
MailLand این رکورد را بهطور منظم دوباره بررسی میکند. اگر رکورد حذف یا تغییر داده شود، دامنه برگشتی سفارشی دیگر تأییدشده نیست، اعلانی دریافت میکنید و ایمیلهای شما تا تأیید دوبارهٔ رکورد با Return-Path پیشفرض MailLand ارسال میشوند. خاموش و دوباره روشن کردن این تنظیم نیز به تأیید دوبارهٔ رکورد نیاز دارد.
میتوانید دامنهٔ برگشتی سفارشی را در تنظیمات دامنه خاموش کنید، اما فقط پس از تأیید یک هشدار: دامنه آنگاه زیر envelope برگشتی مشترک MailLand ارسال میکند، SPF با دامنهٔ شما همراستا نیست و اعتبار envelope با فرستندههای دیگر مشترک است. دامنههایی که آن را خاموش کردهاند برای اپراتورهای MailLand علامتگذاری میشوند. دامنههایی که پیش از پیشفرض شدن این گزینه ساخته شدهاند تنظیم فعلی خود را حفظ میکنند؛ برای داشتن این رکورد آن را در تنظیمات دامنه روشن کنید.
CNAME ردیابی
اگر از یک زیردامنه ردیابی سفارشی استفاده میکنید، یک CNAME اضافه کنید:
| فیلد | مقدار |
|---|---|
| نوع | CNAME |
| نام | track.yourdomain.com |
| مقدار | track.mlnd.net |
| TTL | 3600 |
این رکورد باید فقط DNS (بدون پروکسی) باشد. رکورد پروکسیشده، مانند ابر نارنجی Cloudflare، با گواهی دیگری پاسخ میدهد و لینکهای ردیابی و لینک لغو اشتراک از کار میافتند. پس از تأیید CNAME، MailLand گواهی HTTPS را درخواست میکند و HTTPS را روی این میزبان بررسی میکند. لینکها تا پیش از موفقیت این بررسی از میزبان ردیابی پیشفرض MailLand استفاده میکنند؛ اگر این بررسی همچنان ناموفق بماند، به شما اطلاع داده میشود. CNAME هر ساعت دوباره بررسی میشود. از طریق API، useCustomBounce: false را همراه با acknowledgeSharedBounceRisk: true بفرستید؛ بدون آن درخواست با BOUNCE_OPT_OUT_NOT_ACKNOWLEDGED رد میشود.
MX ورودی
اگر از پردازش ایمیل ورودی استفاده میکنید:
| فیلد | مقدار |
|---|---|
| نوع | MX |
| نام | بهطور پیشفرض ریشهٔ دامنه (@)، یا زیردامنهٔ inboundSubdomain شما (برای مثال in) اگر آن را در تنظیمات دامنه تنظیم کرده باشید. زیردامنه، ارائهدهندهٔ صندوق پستی فعلی شما را روی ریشه حفظ میکند؛ ایمیل به هر دوی زیردامنه و ریشه پذیرفته میشود. |
| مقدار | mx.mlnd.net |
| اولویت | 10 |
| TTL | 3600 |
راهنماهای ارائهدهنده DNS
- به داشبورد Cloudflare وارد شوید
- دامنه خود را انتخاب کنید
- به DNS → Records بروید
- برای هر رکورد روی Add Record کلیک کنید
- برای رکوردهای TXT، وضعیت پروکسی را روی DNS only (ابر خاکستری) تنظیم کنید
- برای رکوردهای CNAME، وضعیت پروکسی را روی DNS only تنظیم کنید: CNAMEهای پروکسیشده میتوانند با احراز هویت ایمیل تداخل داشته باشند
بررسی رکوردهای DNS
پس از افزودن رکوردها، تأیید کنید که منتشر شدهاند:
GET https://api.mail.land/v1/domains/{id}/dns-recordscurl https://api.mail.land/v1/domains/k3v9x2m8q1w7z4/dns-records \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."{
"domain": "yourdomain.com",
"spfRecord": {
"recordType": "TXT",
"hostName": "@",
"value": "v=spf1 include:spf.mlnd.net ~all",
"status": "valid",
"instructions": "Add this TXT record to your domain's root. If you have an existing SPF record, add 'include:spf.mlnd.net' to it instead of creating a new record."
},
"dkimRecord": {
"recordType": "TXT",
"hostName": "mlnd._domainkey",
"value": "v=DKIM1; k=rsa; p=MIIBIjANBgkq...",
"status": "valid",
"instructions": "Add this TXT record with hostname 'mlnd._domainkey' to enable DKIM signing."
},
"dmarcRecord": {
"recordType": "TXT",
"hostName": "_dmarc",
"value": "v=DMARC1; p=quarantine; pct=100; adkim=r; aspf=r; rua=mailto:[email protected]; sp=none",
"status": "valid",
"instructions": "Add this TXT record at the '_dmarc' subdomain to enable DMARC policy. The rua tag sends aggregate reports to a MailLand address. MailLand stores the reports for this domain for your plan's retention period and makes their DMARC pass rate, sending sources and dispositions available through the API (GET /v1/domains/{id}/dmarc/summary and /dmarc/sources). To also receive the reports yourself, add your own address to the rua tag."
},
"trackingRecord": {
"recordType": "CNAME",
"hostName": "track",
"value": "track.mlnd.net",
"status": "valid",
"instructions": "Custom Tracking Links"
},
"bounceRecords": [
{
"recordType": "CNAME",
"hostName": "bounce",
"value": "bounce.mlnd.net",
"status": "valid",
"instructions": "Bounce Domain (Return-Path) DNS-only (not proxied): a proxied record hides the CNAME from mail servers."
}
],
"notes": [
"DNS changes can take up to 48 hours to propagate globally.",
"After adding records, click 'Verify Domain' to check the configuration.",
"All three records (SPF, DKIM, DMARC) must be verified to start sending emails.",
"Use your DNS provider's documentation for specific instructions on adding TXT records."
]
}انتشار DNS ممکن است از چند دقیقه تا ۴۸ ساعت طول بکشد، بسته به ارائهدهنده DNS و TTL رکوردهای موجود. اکثر ارائهدهندگان ظرف ۵ تا ۱۵ دقیقه انتشار میدهند.
مراحل بعدی
- تأیید: تأیید مالکیت دامنه پس از پیکربندی DNS
- چرخش کلید DKIM: مدیریت و چرخش کلیدهای DKIM
- کلیدهای API: محدود کردن اعتبارنامهها به دامنههای خاص