SPF، DKIM و DMARC در فروشگاه اینترنتی: الزامات Gmail و Yahoo

SPF، DKIM و DMARC چه می‌کنند، Gmail، Yahoo و Outlook.com از فرستندگان چه می‌خواهند، تنظیم آن‌ها در Shopify و WooCommerce و رسیدن به p=reject.

تیم تحریریه FixReports11 دقیقه مطالعه

برای رعایت قوانین فرستنده Gmail و Yahoo، هر فروشگاه اینترنتی باید روی دامنه ارسال خود SPF یا DKIM داشته باشد و فرستندگان انبوه به هر دو نیاز دارند، به‌علاوه یک رکورد DMARC با حداقل p=none که در آن دامنه From قابل مشاهده با SPF یا DKIM هم‌تراز (aligned) باشد. فرستندگان انبوه همچنین باید در ایمیل‌های بازاریابی امکان لغو اشتراک با یک کلیک را فراهم کنند و نرخ اسپم گزارش‌شده خود را زیر 0.3% نگه دارند. در Shopify این یعنی احراز هویت دامنه فرستنده در پنل مدیریت و افزودن یک رکورد DMARC؛ در WooCommerce یعنی ارسال ایمیل از طریق یک سرویس ایمیل که دامنه شما را احراز هویت کرده است. وقتی گزارش‌های DMARC نشان دادند همه ایمیل‌های مشروع شما با موفقیت عبور می‌کنند، می‌توانید سیاست را به سمت p=reject ببرید.

نکات کلیدی

SPF، DKIM و DMARC در عمل چه کاری انجام می‌دهند؟

SPF مشخص می‌کند چه کسانی مجازند از طرف دامنه شما ایمیل بفرستند، DKIM هر پیام را امضا می‌کند و DMARC هر دو را به نشانی From که مشتریان شما می‌بینند پیوند می‌دهد.

رکوردچه چیزی را ثابت می‌کندمحل قرارگیریاستاندارد
SPFسرور ارسال‌کننده برای دامنه‌ای که در envelope (MAIL FROM) به کار رفته مجاز استرکورد TXT روی دامنهRFC 7208 (در زبانه جدید باز می‌شود)
DKIMپیام را همان دامنه امضا کرده و در مسیر تغییری نکرده استرکورد TXT در selector._domainkey.example.comRFC 6376 (در زبانه جدید باز می‌شود)
DMARCSPF یا DKIM برای دامنه‌ای هم‌تراز با دامنه From قابل مشاهده عبور کرده است؛ به گیرندگان می‌گوید در صورت شکست چه کنند و گزارش‌ها را به کجا بفرستندرکورد TXT در _dmarc.example.comRFC 9989 (در زبانه جدید باز می‌شود)

هم‌ترازی (alignment) نکته‌ای است که به‌راحتی از چشم می‌افتد. پلتفرم ایمیل شما ممکن است SPF را برای دامنه بازگشت (bounce) خودش با موفقیت بگذراند، در حالی که نشانی From شما دامنه فروشگاهتان را نشان می‌دهد. چنین پیامی از SPF عبور می‌کند اما در DMARC رد می‌شود، مگر اینکه DKIM با دامنه خود شما امضا شده باشد.

Gmail و Yahoo از فرستندگان چه می‌خواهند؟

هر دو از همه فرستندگان احراز هویت می‌خواهند و برای فرستندگان انبوه قوانین سخت‌گیرانه‌تری اضافه می‌کنند.

Gmail از همه فرستندگان SPF یا DKIM، DNS مستقیم و معکوس (forward و reverse) معتبر، TLS، قالب‌بندی مطابق RFC 5322 و نرخ اسپم کمتر از 0.3% در Postmaster Tools را می‌خواهد (Google (در زبانه جدید باز می‌شود)). Yahoo دست‌کم SPF یا DKIM و نرخ اسپم کمتر از 0.3% را الزامی می‌داند (Yahoo Sender Hub (در زبانه جدید باز می‌شود)). برای فرستندگان انبوه:

الزامGmailYahoo
SPF و DKIMهر دوهر دو
DMARCالزامی؛ سیاست می‌تواند none باشدسیاست معتبر با حداقل p=none و DMARC باید عبور کند
هم‌ترازیدامنه From با دامنه SPF یا DKIM هم‌تراز باشدهمین؛ هم‌ترازی relaxed (آزاد) پذیرفته می‌شود
لغو اشتراک با یک کلیکپیام‌های بازاریابی و پیام‌های اشتراکی، مطابق RFC 8058، به‌علاوه یک لینک قابل مشاهدههدر List-Unsubscribe با پشتیبانی از یک کلیک برای پیام‌های بازاریابی و اشتراکی
اعمال درخواست‌های لغو اشتراکظرف 48 ساعت (توصیه‌شده)ظرف 2 روز
نرخ اسپمکمتر از 0.3%؛ Google کمتر از 0.10% را توصیه می‌کندکمتر از 0.3%

چند نکته برای فروشگاه‌ها اهمیت دارد:

  • Gmail بر اساس دامنه می‌شمارد. پیام‌هایی که از یک دامنه اصلی (primary domain) ارسال می‌شوند در سقف 5,000 پیام حساب می‌شوند، بنابراین ایمیل‌های سفارش، بازاریابی و پاسخ‌های پشتیبانی با هم جمع می‌شوند.
  • فقط حساب‌های شخصی Gmail شمرده می‌شوند. این دستورالعمل‌ها برای پیام‌هایی که به حساب‌های Google Workspace فرستاده می‌شوند اعمال نمی‌شوند.
  • ایمیل‌های تراکنشی از لغو اشتراک با یک کلیک معاف‌اند. ایمیل‌های تأیید سفارش همچنان به احراز هویت نیاز دارند.

لغو اشتراک با یک کلیک از دو هدر استفاده می‌کند که در RFC 8058 (در زبانه جدید باز می‌شود) تعریف شده‌اند؛ این RFC همچنین یک امضای DKIM معتبر را الزامی می‌کند که این هدرها را پوشش دهد:

List-Unsubscribe: <https://example.com/unsubscribe/opaquepart>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

برای اطمینان از اینکه پلتفرم بازاریابی شما این هدرها را اضافه می‌کند، سورس خام (raw source) یکی از کمپین‌های خودتان را باز کنید.

پس از فوریه 2024 چه چیزهایی تغییر کرد؟

اجرای قوانین مرحله‌به‌مرحله سخت‌گیرانه‌تر شده و دیگر ارائه‌دهندگان صندوق پستی هم قوانین مشابهی وضع کرده‌اند.

تاریختغییرمنبع
فوریه 2024الزامات Gmail و Yahoo اجرایی می‌شوند (Yahoo اجرای آن را به‌تدریج آغاز کرد)Google (در زبانه جدید باز می‌شود)، Yahoo (در زبانه جدید باز می‌شود)
ژوئن 2024Gmail: فرستندگان انبوه با نرخ اسپم بالای 0.3% دیگر واجد شرایط کاهش محدودیت (mitigation) نیستندپرسش‌های متداول Gmail (در زبانه جدید باز می‌شود)
1 ژوئن 2024مهلت Gmail برای لغو اشتراک با یک کلیک، برای فرستندگانی که از قبل لینک لغو اشتراک داشتندپرسش‌های متداول Gmail (در زبانه جدید باز می‌شود)
5 مه 2025الزامات Outlook.com برای دامنه‌هایی که روزانه بیش از 5,000 ایمیل می‌فرستند؛ طبق به‌روزرسانی 29 آوریل Microsoft، پیام‌هایی که الزامات را رعایت نکنند با 550 5.7.515 رد می‌شوندMicrosoft (در زبانه جدید باز می‌شود)
نوامبر 2025Gmail اجرای قوانین را سخت‌گیرانه‌تر می‌کند، از جمله با رد موقت و دائمی پیام‌هاپرسش‌های متداول Gmail (در زبانه جدید باز می‌شود)
مه 2026RFC 9989 به‌عنوان مشخصات DMARC جایگزین RFC 7489 می‌شود و آن را منسوخ می‌کندIETF (در زبانه جدید باز می‌شود)

قوانین Outlook.com برای نشانی‌های کاربران عادی آن (outlook.com، hotmail.com و live.com) اعمال می‌شود و الزام می‌کند که SPF و DKIM عبور کنند و DMARC با حداقل p=none و هم‌تراز با SPF یا DKIM وجود داشته باشد.

چگونه SPF، DKIM و DMARC را در Shopify راه‌اندازی کنید؟

دامنه فرستنده خود را در پنل مدیریت Shopify احراز هویت کنید، سپس یک رکورد DMARC در سرویس DNS خود اضافه کنید.

طبق راهنمای راه‌اندازی ایمیل (در زبانه جدید باز می‌شود) Shopify، از 1 فوریه 2024، Gmail و Yahoo برای ارسال از نشانی‌ای با نام تجاری خودتان، دامنه احراز هویت‌شده و رکورد DMARC را الزامی می‌دانند. اگر رکوردهای احراز هویت پیکربندی نشده باشند، Shopify نشانی فرستنده شما را به قالب store+123@shopifyemail.com بازنویسی می‌کند. مراحل:

  1. در پنل مدیریت Shopify به Settings > Notifications بروید.
  2. در بخش Sender email روی authenticate your domain کلیک کنید.
  3. همه رکوردهای CNAME نمایش‌داده‌شده را نزد ارائه‌دهنده DNS خود اضافه کنید. تعداد آن‌ها ممکن است متفاوت باشد. به گفته Shopify، این رکوردها SPF و DKIM نشانی فرستنده شما را مدیریت می‌کنند و نیازی به افزودن نشانی‌های IP نیست.
  4. تا 48 ساعت برای اعمال تغییرات DNS صبر کنید.
  5. یک رکورد TXT با نام _dmarc و مقدار v=DMARC1; p=none; اضافه کنید؛ Shopify همین مقدار را به‌عنوان پیش‌فرض به کار می‌برد.

اگر دامنه خود را از Shopify خریده‌اید یا آن را به Shopify منتقل کرده‌اید، Shopify این رکوردها را برای شما مدیریت می‌کند. Shopify همچنین هشدار می‌دهد که هر دامنه فقط می‌تواند یک رکورد DMARC داشته باشد و تنظیمات هم‌ترازی strict (adkim=s یا aspf=s) باید حذف یا به r تغییر داده شوند.

احراز هویت Shopify فقط ایمیل‌هایی را پوشش می‌دهد که خود Shopify می‌فرستد. اگر برای کمپین‌ها از پلتفرم دیگری، یا از یک میز پشتیبانی (help desk)، یا از Google Workspace برای ایمیل کارکنان استفاده می‌کنید، هر کدام به راه‌اندازی DKIM جداگانه نیاز دارد و اگر از دامنه شما برای بازگشت پیام‌ها (bounce) استفاده کند، به ورودی SPF جداگانه هم نیاز دارد.

چگونه احراز هویت ایمیل را برای WooCommerce راه‌اندازی کنید؟

ایمیل‌های WooCommerce را از طریق یک ارائه‌دهنده اختصاصی بفرستید که با دامنه شما امضا می‌کند؛ همان کاری که مستندات خود WooCommerce توصیه می‌کند.

WooCommerce ایمیل‌ها را با تابع wp_mail() در WordPress می‌فرستد و پرسش‌های متداول ایمیل (در زبانه جدید باز می‌شود) آن، یک ارائه‌دهنده SMTP اختصاصی را مطمئن‌تر از تابع ایمیل سرور خودتان می‌داند و توصیه می‌کند. یک راه‌اندازی معمول:

  1. یک ارائه‌دهنده ایمیل تراکنشی انتخاب کنید و دامنه خود را نزد آن تأیید کنید. ارائه‌دهنده، رکوردهای DKIM و include مربوط به SPF را که باید منتشر کنید در اختیارتان می‌گذارد.
  2. WordPress را با یک افزونه SMTP یا API به آن ارائه‌دهنده متصل کنید.
  3. From address را در WooCommerce > Settings > Emails روی نشانی‌ای در دامنه خودتان تنظیم کنید. WooCommerce هشدار می‌دهد که یک نشانی عمومی، مثلاً نشانی‌ای در Gmail یا Yahoo، احتمالاً به پوشه اسپم می‌رود یا مسدود می‌شود.
  4. یک رکورد DMARC در _dmarc.yourdomain منتشر کنید.
  5. بخش WooCommerce > Status > Logs را بررسی کنید و بر اساس منبع transactional-emails فیلتر کنید تا ببینید کدام پیام‌ها ارسال شده‌اند یا ناموفق بوده‌اند.

اگر میزبان وب شما هم از طرف این دامنه ایمیل می‌فرستد، آن را احراز هویت یا خاموش کنید. هر سیستمی که بدون SPF یا DKIM هم‌تراز به نام دامنه شما ایمیل بفرستد، در DMARC رد می‌شود.

محدودیت 10 lookup در SPF چیست و چگونه زیر آن بمانید؟

هر بررسی SPF حداکثر می‌تواند از 10 عبارتی استفاده کند که به پرس‌وجوی DNS نیاز دارند؛ یکی بیشتر شود، نتیجه permerror است و SPF عبور نمی‌کند.

RFC 7208، بخش 4.6.4 (در زبانه جدید باز می‌شود) عبارت‌هایی را که شمرده می‌شوند فهرست می‌کند: مکانیزم‌های include، a، mx، ptr و exists و اصلاح‌گر (modifier) redirect. مکانیزم‌های ip4، ip6 و all شمرده نمی‌شوند. includeهای تودرتو درون includeهای شما هم شمرده می‌شوند، چون این محدودیت به کل فرایند ارزیابی اعمال می‌شود. این RFC همچنین توصیه می‌کند «void lookups» (پرس‌وجوهایی که پاسخی برنمی‌گردانند) به دو مورد محدود شوند و می‌گوید مکانیزم ptr نباید منتشر شود.

راه‌های ماندن زیر 10:

  • includeهای مربوط به سرویس‌هایی را که دیگر استفاده نمی‌کنید حذف کنید.
  • برای سرورهایی که خودتان با نشانی ثابت اداره می‌کنید، از ip4 یا ip6 استفاده کنید.
  • ایمیل‌های بازاریابی را به یک زیردامنه مانند news.example.com منتقل کنید که رکورد SPF و شمارش جداگانه خودش را دارد.
  • هرگز دو رکورد SPF منتشر نکنید. RFC 7208 داشتن چند رکورد را ممنوع می‌کند و ارزیابی نتیجه permerror می‌دهد.
example.com.        TXT  "v=spf1 include:_spf.google.com include:spf.example-esp.com ~all"
news.example.com.   TXT  "v=spf1 include:spf.example-marketing.com ~all"

در این نمونه، spf.example-esp.com و spf.example-marketing.com جای مقادیری را می‌گیرند که ارائه‌دهندگان شما برای استفاده اعلام می‌کنند.

چگونه DMARC را از p=none به p=reject برسانید؟

با p=none و گزارش‌گیری شروع کنید، هر منبع مشروعی را که گزارش‌ها نشان می‌دهند اصلاح کنید و سپس سیاست را سخت‌گیرانه‌تر کنید.

مرحلهرکوردهدف
1. پایشv=DMARC1; p=none; rua=mailto:dmarc@example.comجمع‌آوری گزارش‌های تجمیعی درباره اینکه چه کسانی به نام دامنه شما ایمیل می‌فرستند
2. اصلاحبدون تغییرهر منبع مشروع با SPF یا DKIM هم‌تراز عبور کند
3. قرنطینهv=DMARC1; p=quarantine; rua=mailto:dmarc@example.comایمیل‌هایی که عبور نکنند به پوشه اسپم می‌روند
4. ردv=DMARC1; p=reject; rua=mailto:dmarc@example.comایمیل‌هایی که عبور نکنند پذیرفته نمی‌شوند

فقط زمانی به مرحله بعد بروید که گزارش‌ها نشان دهند پلتفرم فروشگاه، ابزار بازاریابی، میز پشتیبانی و ایمیل کارکنان شما همگی عبور می‌کنند. گزارش‌های تجمیعی در RFC 9990 (در زبانه جدید باز می‌شود) تعریف شده‌اند. اگر نشانی rua روی دامنه دیگری باشد، مثلاً یک سرویس گزارش‌دهی، آن دامنه باید رکوردی منتشر کند که دریافت گزارش‌ها را مجاز کند.

راهنماهای قدیمی‌تر پیشنهاد می‌کنند سیاست را با pct=25 یا pct=50 به‌تدریج اعمال کنید. RFC 9989 برچسب pct را حذف کرد (ورودی آن در رجیستری اکنون «historic» است)، چون مقادیر غیر از 0 و 100 به شکل ناهمسانی اعمال می‌شدند. به جای آن، t=y از گیرندگان می‌خواهد سیاست یک سطح پایین‌تر را اعمال کنند، برای مثال quarantine به جای reject. اگر یک مرحله آزمایشی می‌خواهید، به جای درصدهای جزئی از t=y استفاده کنید.

_dmarc.example.com.  TXT  "v=DMARC1; p=quarantine; t=y; rua=mailto:dmarc@example.com"
_dmarc.example.com.  TXT  "v=DMARC1; p=reject; sp=reject; rua=mailto:dmarc@example.com"

سیاست اجرایی (enforced) همچنین راه را برای BIMI باز می‌کند که لوگوی شما را در صندوق‌های ورودی پشتیبانی‌کننده نمایش می‌دهد. Gmail برای این کار DMARC با p=quarantine یا p=reject و یک Verified Mark Certificate یا Common Mark Certificate را الزامی می‌داند (Google (در زبانه جدید باز می‌شود)). برای ایمیل‌هایی که به دامنه شما وارد می‌شوند، MTA-STS (RFC 8461 (در زبانه جدید باز می‌شود)) به شما امکان می‌دهد به سرورهای فرستنده اعلام کنید که اگر سرورهای ایمیل شما TLS با گواهی مورد اعتماد ارائه نکنند، از تحویل ایمیل به آن‌ها خودداری کنند.

چگونه رکوردهای فروشگاه خود را بررسی کنید؟

سه نوع رکورد را با dig پرس‌وجو کنید یا از ابزاری استفاده کنید که آن‌ها را برایتان می‌خواند.

dig +short TXT example.com
dig +short TXT _dmarc.example.com
dig +short TXT selector._domainkey.example.com

سلکتور (selector) DKIM را ارائه‌دهنده شما تعیین می‌کند و می‌توانید آن را در مقدار s= هدر DKIM-Signature در پیامی که فرستاده‌اید پیدا کنید. گزارش تحویل‌پذیری ایمیل DNS عمومی شما را می‌خواند، lookupهای SPF را می‌شمارد، سلکتورهای رایج DKIM را امتحان می‌کند و سیاست DMARC، rua، pct، BIMI و MTA-STS را بررسی می‌کند. رکوردهای درست کمک می‌کنند، اما هیچ مجموعه‌ای از رکوردها رسیدن ایمیل به صندوق ورودی را تضمین نمی‌کند، چون ارائه‌دهندگان صندوق پستی شکایت‌های اسپم و رفتار ارسال را هم در نظر می‌گیرند.

پرسش‌های متداول

اگر فروشگاهم روزانه کمتر از 5,000 ایمیل بفرستد، باز هم به DMARC نیاز دارم؟

Gmail فقط از فرستندگان انبوه DMARC را می‌خواهد، اما Shopify یادآوری می‌کند که Gmail و Yahoo برای ارسال از نشانی‌ای با نام تجاری خودتان، دامنه احراز هویت‌شده و رکورد DMARC را الزامی می‌دانند. یک رکورد p=none ریسک کمی دارد و برایتان گزارش فراهم می‌کند، بنابراین بهتر است بیشتر فروشگاه‌ها یکی منتشر کنند.

آیا دامنه من می‌تواند دو رکورد SPF داشته باشد؟

خیر. طبق RFC 7208، یک دامنه نباید چند رکورد SPF داشته باشد و اگر داشته باشد، ارزیابی SPF نتیجه permerror می‌دهد. همه فرستندگان را در یک رکورد ادغام کنید.

آیا p=reject ایمیل‌های سفارش Shopify من را مسدود می‌کند؟

اگر رکوردهای CNAME مربوط به Shopify در جای خود باشند و گزارش‌های DMARC نشان دهند ایمیل‌های Shopify با DKIM هم‌تراز عبور می‌کنند، خیر. پیش از عبور از p=none گزارش‌ها را بررسی کنید و همان‌طور که Shopify توصیه می‌کند، هم‌ترازی را روی relaxed نگه دارید.

آیا برچسب pct در DMARC هنوز معتبر است؟

RFC 9989 که در مه 2026 منتشر شد، pct را حذف کرد و t=y را برای حالت آزمایشی معرفی کرد. راهنمای BIMI در Google هنوز pct=100 را می‌خواهد که در نبود این برچسب مقدار پیش‌فرض است؛ بنابراین ساده‌ترین انتخاب برای رکوردهای جدید این است که pct را اصلاً ننویسید.

آیا عبور از SPF، DKIM و DMARC تضمین می‌کند ایمیل‌های من به صندوق ورودی برسند؟

خیر. احراز هویت یک الزام است، نه تضمین. Gmail و Yahoo نرخ شکایت از اسپم، نحوه رسیدگی به لغو اشتراک و قالب‌بندی پیام را هم بررسی می‌کنند.

منابع