Email Spam Tester একটি পরীক্ষা চালান · এজেন্টের জন্য · API

পরীক্ষা যেভাবে কাজ করে

একটি অস্থায়ী ঠিকানায় একটি বার্তা পাঠালে সেটির ওপর ৩৯টি যাচাই চলে। এই পৃষ্ঠায় সেগুলোর সবই রয়েছে: প্রতিটি কী পরীক্ষা করে, ব্যর্থ হলে আপনার স্কোর কত কমে এবং এটি স্ট্যান্ডার্ডের কোন ধারা থেকে এসেছে।

এখানে কোনো মতামতকে নিয়ম হিসেবে উপস্থাপন করা হয়নি। কোনো যাচাই যখন স্ট্যান্ডার্ডের কোনো বিধান প্রয়োগ করে, তখন সেই স্ট্যান্ডার্ডের সংশ্লিষ্ট বাক্যটি নিচে উদ্ধৃত থাকে। এর বদলে যখন Google বা Yahoo-এর কোনো প্রয়োজনীয়তা প্রয়োগ করা হয়, তখন তাদের পৃষ্ঠার লিঙ্ক দেওয়া থাকে। আর যখন এটি আমাদের নিজস্ব বিচার, তখন তা স্পষ্টভাবে বলা থাকে।

প্রমাণীকরণ

গ্রহণকারী সার্ভার প্রমাণ করতে পারে কি না যে বার্তাটি ঘোষিত উৎস থেকেই এসেছে। এটি ডেলিভারেবিলিটির সম্পূর্ণ DNS-নির্ভর অর্ধাংশ এবং ২০২৪ সালে Gmail ও Yahoo বাল্ক প্রেরকদের জন্য যে অর্ধাংশ বাধ্যতামূলক করেছে।

ARC চেইন auth.arc

ARC একটি ফরওয়ার্ডার অতিক্রম করার পরও প্রমাণীকরণের ফলাফল সংরক্ষণ করে। এটি ছাড়া, ফুটার যোগ করা কোনো মেইলিং লিস্ট আপনার DKIM স্বাক্ষর ভেঙে দেয় এবং ফরওয়ার্ড করা কপিটি দূরবর্তী প্রান্তে DMARC ব্যর্থ হয়।

ব্যর্থ হলে: প্রেরক হিসেবে কিছু করার নেই। আপনি কোনো লিস্ট বা ফরওয়ার্ডার চালালে এটি গুরুত্বপূর্ণ, এবং কেউ আপনার মেইল ফরওয়ার্ড করার পর কেন সেটির কিছু অংশ DMARC ব্যর্থ হয়, এটি তা ব্যাখ্যা করে।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 2 পয়েন্ট।

RFC 7960 §1 — Introduction

DMARC with restrictive policies causes problems for many Mailing Lists.

RFC 8617 §2.1 — Evidence

In ARC's situation, the "evidence" is a message's authentication assessment at any point along the delivery path between origination and final delivery.

Google — Requirements for bulk senders (5,000+/day)

DKIM স্বাক্ষর auth.dkim

DKIM একটি ব্যক্তিগত কী দিয়ে বার্তার অংশগুলোতে স্বাক্ষর করে এবং সর্বজনীন কীটি DNS-এ প্রকাশ করে। বার্তাটিতে থাকা প্রতিটি স্বাক্ষর আমরা যাচাই করি এবং স্বাক্ষরকারী ডোমেইন, সিলেক্টর ও কী-এর দৈর্ঘ্য জানাই।

ব্যর্থ হলে: আপনার পাঠানোর প্ল্যাটফর্মে DKIM চালু করুন এবং সেটি আপনাকে যে কী দেয় তা প্রকাশ করুন। 2048 বিট ব্যবহার করুন (1024 এখনও যাচাই হয়, তবে এটি ধীরে ধীরে অচল হয়ে যাচ্ছে)।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 18 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 1।

RFC 6376 §3.5 — The DKIM-Signature Header Field

The signature of the email is stored in the DKIM-Signature header field.

RFC 6376 §6.1 — Extract Signatures from the Message

Verifiers MUST NOT attribute ultimate meaning to the order of multiple DKIM-Signature header fields.

Google — Turn on DKIM for your domain

Google — Requirements for bulk senders (5,000+/day)

DKIM অ্যালাইনমেন্ট auth.dkim_alignment

DMARC-এর জন্য একটি বৈধ স্বাক্ষরই যথেষ্ট নয়। স্বাক্ষরকারী ডোমেইনটিকে From হেডারের ডোমেইনের সঙ্গে মিলতে হবে, আপনার প্রকাশিত নীতির ওপর নির্ভর করে হুবহু বা সাংগঠনিক ডোমেইন অনুযায়ী।

ব্যর্থ হলে: আপনার প্ল্যাটফর্মের ডোমেইনের বদলে নিজের ডোমেইন দিয়ে স্বাক্ষর করুন। অধিকাংশ প্ল্যাটফর্ম এটি সমর্থন করে এবং একে কাস্টম বা প্রমাণীকৃত পাঠানোর ডোমেইন বলে।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 10 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 1।

RFC 7489 §3.1.1 — DKIM-Authenticated Identifiers

DMARC permits Identifier Alignment, based on the result of a DKIM authentication, to be strict or relaxed.

Google — Add a DMARC record

Google — Requirements for bulk senders (5,000+/day)

DMARC ফলাফল auth.dmarc

DMARC আপনার পাঠক যে ডোমেইনটি দেখেন তার সঙ্গে SPF ও DKIM-কে যুক্ত করে এবং কোনোটিরই অ্যালাইনমেন্ট না হলে কী করতে হবে তা গ্রহণকারীদের জানায়। আমরা প্রকাশিত নীতি এবং এই বার্তাটি সেটি পূরণ করেছে কি না জানাই।

ব্যর্থ হলে: একটি DMARC রেকর্ড প্রকাশ করুন। p=none দিয়ে শুরু করুন, কয়েক সপ্তাহ রিপোর্টগুলো পড়ুন, তারপর আর কী কী আপনার পরিচয়ে পাঠায় তা জানার পর quarantine-এ যান।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 14 পয়েন্ট।

RFC 7489 §6.6.2 — Determine Handling Policy

DMARC evaluation can only yield a "pass" result after one of the underlying authentication mechanisms passes for an aligned identifier.

RFC 7489 §6.3 — General Record Format

DMARC records follow the extensible "tag-value" syntax for DNS-based key records defined in DKIM [DKIM].

Google — Requirements for bulk senders (5,000+/day)

Yahoo — Sender requirements and recommendations

Sender ID auth.sender_id

SPF-এর মতো একই পরীক্ষা, তবে এনভেলপের বদলে From হেডারের ডোমেইনের বিপরীতে চালানো হয়। এটি একটি ভিন্ন প্রশ্নের উত্তর দেয়: আপনার পাঠক যে ডোমেইনটি দেখেন, সেটি বার্তাটি পাঠানো সার্ভারকে অনুমোদন করে কি না। একটি বার্তা তার এনভেলপে SPF পাস করতে পারে, অথচ দৃশ্যমান ডোমেইন কোনো সার্ভারের পক্ষেই নিশ্চয়তা দেয় না।

ব্যর্থ হলে: শুধু আপনার প্ল্যাটফর্মের দেওয়া বাউন্স ডোমেইনের জন্য নয়, আপনার From হেডারের ডোমেইনের জন্যও SPF প্রকাশ করুন।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 5 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 0.5।

RFC 4406 §4 — Record Selection

After the above steps, there should be one record remaining and evaluation can proceed.

SPF auth.spf

SPF হলো একটি DNS রেকর্ড, যেখানে কোন সার্ভারগুলো আপনার ডোমেইনের পক্ষে পাঠাতে পারে তার তালিকা থাকে। গ্রহণকারী সার্ভার এনভেলপের ঠিকানাটি নেয়, সেই ডোমেইনের রেকর্ড খোঁজে এবং সংযোগকারী IP তাতে আছে কি না পরীক্ষা করে। আমরা ফলাফল এবং রেকর্ডটির প্রয়োজন হওয়া DNS লুকআপের সংখ্যা জানাই, কারণ দশটিতে মূল্যায়ন থেমে যায় এবং এর বেশি হলে পাসের বদলে স্থায়ী ত্রুটি হয়।

ব্যর্থ হলে: এমন একটি রেকর্ড প্রকাশ করুন, যেখানে শুধু আপনার পাঠানোর প্ল্যাটফর্মের নাম থাকবে। আপনারটি যদি দশটি লুকআপের সীমার কাছাকাছি থাকে, তাহলে আপনি ব্যবহার করেন না এমন include-গুলো ফ্ল্যাটেন করুন (আজ যে রেকর্ড পাস করে, কোনো প্রদানকারী নিজস্ব একটি include যোগ করলেই সেটি ব্যর্থ হতে শুরু করে)।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 18 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 1।

RFC 7208 §4.6.4 — DNS Lookup Limits

SPF implementations MUST limit the total number of those terms to 10 during SPF evaluation, to avoid unreasonable load on the DNS. If this limit is exceeded, the implementation MUST return "permerror".

RFC 7208 §2.6 — Results of Evaluation

Section 4 defines check_host(), a model function definition that uses the inputs defined above and the sender's policy published in the DNS to reach a conclusion about client authorization.

Google — Define an SPF record

Google — Requirements for bulk senders (5,000+/day)

SPF অ্যালাইনমেন্ট auth.spf_alignment

বাউন্স ঠিকানাটি পাঠকের দেখা From ঠিকানার সঙ্গে মেলে কি না। SPF এনভেলপকে অনুমোদন করে, এবং দুটির অ্যালাইনমেন্ট হলেই কেবল DMARC সেই অনুমোদনকে গণ্য করে।

ব্যর্থ হলে: আপনার পাঠানোর প্ল্যাটফর্মের কাছে নিজের ডোমেইনের একটি বাউন্স সাবডোমেইন চান। আপনার DKIM ইতিমধ্যে অ্যালাইন করা থাকলে এটি জরুরি নয়, তবে ট্রানজিটের সময় DKIM নষ্ট হলে এতে আপনার কোনো বিকল্প ব্যবস্থা থাকে না।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 5 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 0.5।

RFC 7489 §3.1.2 — SPF-Authenticated Identifiers

In relaxed mode, the [SPF]-authenticated domain and RFC5322.From domain must have the same Organizational Domain. In strict mode, only an exact DNS domain match is considered to produce Identifier Alignment.

RFC 7489 §6.6.2 — Determine Handling Policy

If one or more of the Authenticated Identifiers align with the RFC5322.From domain, the message is considered to pass the DMARC mechanism check.

Google — Add a DMARC record

Google — Requirements for bulk senders (5,000+/day)

অবকাঠামো ও সুনাম

যে মেশিন ও ঠিকানা থেকে বার্তাটি পাঠানো হয়েছে এবং ইন্টারনেটের বাকি অংশ সেগুলো সম্পর্কে ইতিমধ্যে কী ধারণা পোষণ করে।

প্রেরণকারী হোস্টনেম রেজলভ হয় infra.a_record

HELO-তে ঘোষিত হোস্টনেমটির আদৌ কোনো অ্যাড্রেস রেকর্ড আছে কি না।

ব্যর্থ হলে: আপনার সার্ভার যে নাম ঘোষণা করে, সেটির জন্য একটি A রেকর্ড প্রকাশ করুন।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 5 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 3।

RFC 5321 §5.1 — Locating the Target Host

If an empty list of MXs is returned, the address is treated as if it was associated with an implicit MX RR, with a preference of 0, pointing to that host.

Google — MX record values and troubleshooting

ব্লকলিস্ট infra.dnsbl

প্রেরণকারী IP এমন কোনো ব্লকলিস্টে তালিকাভুক্ত কি না, যা প্রাপকেরা বাস্তবে যাচাই করে। ওয়েব অনুসন্ধান থেকে তালিকা তৈরি না করে প্রতিটি জোনের নিজস্ব নথিভুক্ত পরীক্ষার পয়েন্টের বিপরীতে আমাদের তালিকা যাচাই করা হয়, কারণ একটি নিষ্ক্রিয় জোন NXDOMAIN উত্তর দেয় এবং সেটিকে "পরিষ্কার" হিসেবে দেখা হয়।

ব্যর্থ হলে: তালিকাভুক্তকারী অপারেটরের সাইটে তালিকা থেকে অপসারণের প্রক্রিয়া অনুসরণ করুন। কোনো প্রধান জোনে তালিকাভুক্তি সরাসরি মেইল আটকে দেয়, তাই পৃষ্ঠার অন্য সবকিছুর আগে এটি সমাধান করুন।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 25 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 3।

RFC 5782 §2.1 — IP Address DNSxL

Each IPv4 address listed in the DNSxL has a corresponding DNS entry.

RFC 5782 §5 — Test and Contact Addresses

IPv4-based DNSxLs MUST contain an entry for 127.0.0.2 for testing purposes.

Google — Postmaster Tools: reputation and delivery errors

Google — Email sender guidelines

HELO নাম infra.helo

SMTP কথোপকথনের শুরুতে প্রেরণকারী সার্ভার নিজেকে যে নামে ঘোষণা করে। এটি অবশ্যই রেজলভ হয় এমন একটি সম্পূর্ণ যোগ্যতাসম্পন্ন ডোমেইন হতে হবে।

ব্যর্থ হলে: আপনার মেইল সার্ভারের হোস্টনেম আপনার ডোমেইনের একটি বাস্তব নামে সেট করুন, কোনো কনটেইনার আইডি বা অভ্যন্তরীণ নামে নয়।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 5 পয়েন্ট।

RFC 5321 §4.1.1.1 — Extended HELLO (EHLO) or HELLO (HELO)

The argument clause contains the fully-qualified domain name of the SMTP client, if one is available.

Google — Email sender guidelines

Google — Requirements for bulk senders (5,000+/day)

MX রেকর্ড infra.mx

আপনার From হেডারের ডোমেইনটি মেইল গ্রহণ করতে পারে কি না। এটি ছাড়া উত্তর ও বাউন্স পাঠানোর কোনো গন্তব্য থাকে না, এবং ফিল্টারগুলো মেইল গ্রহণে অক্ষম কোনো প্রেরণকারী ডোমেইনকে খারাপ লক্ষণ হিসেবে বিবেচনা করে।

ব্যর্থ হলে: আপনি যে ডোমেইন থেকে পাঠান, সেটির জন্য একটি MX রেকর্ড প্রকাশ করুন, এমনকি সেটি যদি শুধু এমন একটি মেইলবক্সে রুট করে যা আপনি মাসে একবার পড়েন।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 5 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 3।

RFC 5321 §5.1 — Locating the Target Host

The lookup first attempts to locate an MX record associated with the name.

Google — MX record values and troubleshooting

রিভার্স DNS infra.rdns

প্রেরণকারী IP কোনো হোস্টনেমে বিপরীতভাবে রেজলভ হয় কি না, এবং সেই হোস্টনেমটি সামনের দিকে একই IP-তে রেজলভ হয় কি না। উভয় দিকের মিলটাই মূল বিষয়: যেকোনো স্থানে নির্দেশ করা PTR সহজ, মিলে যাওয়া জোড়া প্রমাণ করে যে ঠিকানাটি আপনার।

ব্যর্থ হলে: যিনি IP-এর মালিক, তাঁকে PTR এমন একটি নামে সেট করতে বলুন যা আপনি নিয়ন্ত্রণ করেন, এবং নিশ্চিত করুন যে সেই নামের একটি A রেকর্ড আবার ওই IP-তে নির্দেশ করে।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 12 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 1.5।

RFC 1912 §2.1 — Inconsistent, Missing, or Bad Data

Make sure your PTR and A records match. For every IP address, there should be a matching PTR record in the in-addr.arpa domain.

Google — Email sender guidelines

Google — Requirements for bulk senders (5,000+/day)

পরিবহন এনক্রিপশন infra.tls

বার্তাটি TLS-এর মাধ্যমে এসেছে কি না, এবং কোন সাইফার ব্যবহার করেছে। সব আধুনিক সিস্টেমই এটি নেগোশিয়েট করে; এনক্রিপশন ছাড়া আসা কোনো বার্তা প্রেরণ ব্যবস্থার অবস্থা সম্পর্কে কিছু নির্দেশ করে।

ব্যর্থ হলে: প্রেরণকারী সার্ভারে STARTTLS সক্রিয় করুন। সব প্রচলিত প্ল্যাটফর্ম ইতিমধ্যেই এটি করে, তাই এখানে ব্যর্থতার অর্থ সাধারণত পথে একটি স্ব-হোস্টেড রিলে রয়েছে।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 5 পয়েন্ট।

RFC 3207 §2 — STARTTLS Extension

The STARTTLS extension to SMTP is laid out as follows:

Google — Require TLS for secure message transport

Google — Requirements for bulk senders (5,000+/day)

স্প্যাম ইঞ্জিন

স্বতন্ত্র কনটেন্ট ফিল্টারগুলো বার্তাটিকে কীভাবে মূল্যায়ন করে। একটির বদলে দুটি ইঞ্জিন, কারণ একটি ইঞ্জিনের স্কোর শুধু সেই ইঞ্জিনের মতামত।

AI বিচারক spam.ai_judge

কারিগরি ফলাফল এবং কনটেন্টের পরিমাপ থেকে একটি মডেল অনুমান করে আধুনিক মেশিন-লার্নিং ফিল্টার বার্তাটির সঙ্গে কেমন আচরণ করবে। এটি মূল বার্তার লেখা নয়, তথ্যগুলো দেখে।

ব্যর্থ হলে: এটি নিজে শুধু বিস্তারিত তথ্য দেয়। এর অনুমান নিচের সম্মিলিত রায়ে যুক্ত হয়।

বিস্তারিত তথ্যের জন্য দেখানো হয়েছে। কখনো স্কোর করা হয় না।

সম্মিলিত রায় spam.panel

উত্তর দেওয়া ইঞ্জিনগুলো থেকে একটি সংখ্যা, এমনভাবে ওজন নির্ধারণ করা হয় যাতে সবচেয়ে জোরালো মতামতকে শুধু গড় করে গুরুত্বহীন করা না হয়। SpamAssassin এবং Postmark-কে একটি ভোট হিসেবে গণনা করা হয়, কারণ তারা একই নিয়মভিত্তি ব্যবহার করে।

ব্যর্থ হলে: প্রতিটি আলাদা ফলাফল ধরে কাজ করুন। সেগুলো পরিবর্তিত হলে এই সারিটিও পরিবর্তিত হয়।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 25 পয়েন্ট।

Google — Why Gmail marks messages as spam

How this score is calculated

Postmark SpamCheck spam.postmark

একটি তৃতীয় মতামত, ডিফল্টভাবে বন্ধ। এর এন্ডপয়েন্ট পুরো বার্তা গ্রহণ করে এবং যা পরিমাপ করা হচ্ছে তা নষ্ট না করে আমরা এর কোনো অংশ গোপন করতে পারি না, তাই এটি চালু করার অর্থ হলো পরীক্ষিত প্রতিটি বার্তা তৃতীয় পক্ষের কাছে কপি করা হবে, তা মেনে নেওয়া।

ব্যর্থ হলে: কিছু করার নেই। এটি বন্ধ থাকলে পরীক্ষাটি জানায় যে এটি বন্ধ, যা পাস করার সমান নয়।

বিস্তারিত তথ্যের জন্য দেখানো হয়েছে। কখনো স্কোর করা হয় না।

Rspamd spam.rspamd

স্বতন্ত্রভাবে তৈরি একটি দ্বিতীয় ফিল্টার। এটি SpamAssassin-এর সঙ্গে প্রায়ই যথেষ্ট দ্বিমত করে, তাই এর মতামত নেওয়া উপযোগী, এবং এ কারণেই এটি এখানে রয়েছে।

ব্যর্থ হলে: শুধু বিস্তারিত তথ্য। এই ইঞ্জিনের মতামতকে আলাদাভাবে স্কোর না করে সম্মিলিত রায়ে অন্তর্ভুক্ত করা হয়।

বিস্তারিত তথ্যের জন্য দেখানো হয়েছে। কখনো স্কোর করা হয় না।

SpamAssassin spam.spamassassin

প্রচলিত নিয়মভিত্তিক ফিল্টার, যা এখনও অধিকাংশ ইমেইল পরীক্ষার টুলের মূল ইঞ্জিন। সক্রিয় হওয়া প্রতিটি নিয়ম তার ওজনসহ তালিকাভুক্ত করা হয়।

ব্যর্থ হলে: মোট স্কোরের বদলে সক্রিয় হওয়া নিয়মগুলো পড়ুন। কোনগুলো সক্রিয় হয়েছে তা দেখতে পারলে অধিকাংশই সহজে ঠিক করা যায়।

ক্ষতি ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 3।

Google — Why Gmail marks messages as spam

Apache SpamAssassin — rule documentation

বিষয়বস্তু

বার্তাটি নিজেই: এর কাঠামো, লিঙ্ক, ছবি এবং সিদ্ধান্ত নেওয়ার আগে ফিল্টার যে বিষয়গুলো পড়ে।

ছবির বিকল্প টেক্সট content.alt_attributes

ছবিগুলোতে alt অ্যাট্রিবিউট আছে কি না। মেইল ক্লায়েন্ট ডিফল্টভাবে রিমোট ছবি ব্লক করে, তাই প্রথম কয়েক সেকেন্ড alt টেক্সটই আপনার বার্তা।

ব্যর্থ হলে: অর্থ প্রকাশ করে এমন alt টেক্সট লিখুন, এবং মূল ভিজ্যুয়ালটিকে কখনোই এটি ছাড়া রাখবেন না।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 4 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 0.5।

Google — Email sender guidelines

script ও iframe content.forbidden_tags

HTML-এ এমন ট্যাগ আছে কি না যা কোনো মেইল ক্লায়েন্ট চালাবে না। ভালো ক্ষেত্রে সেগুলো সরিয়ে ফেলা হয় এবং খারাপ ক্ষেত্রে ফাঁকি দেওয়ার সংকেত হিসেবে বিবেচনা করা হয়।

ব্যর্থ হলে: script, iframe, object এবং embed সরান। ইন্টারঅ্যাকটিভ যেকোনো কিছু একটি লিংকের পেছনে থাকা উচিত।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 10 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 1।

Google — Email sender guidelines

টেক্সট ও HTML-এর ভারসাম্য content.html_text_ratio

বার্তাটিতে পাঠযোগ্য টেক্সটের তুলনায় কতটা মার্কআপ আছে। একটি বাক্যের চারপাশে মোড়ানো এক পৃষ্ঠা মার্কআপ এমন একটি ধরন যা ফিল্টার শনাক্ত করে।

ব্যর্থ হলে: প্লেসহোল্ডারের বদলে এমন একটি টেক্সট অংশ লিখুন যা HTML-এর একই কথা বলে।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 3 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 0.3।

RFC 2046 §5.1.4 — Alternative Subtype

Systems should recognize that the content of the various parts are interchangeable.

Google — Why Gmail marks messages as spam

টেক্সট ও HTML অংশ content.html_version

বার্তাটিতে HTML-এর পাশাপাশি একটি প্লেইন টেক্সট বিকল্প আছে কি না। কিছু ফিল্টার এটির অনুপস্থিতিকে গুরুত্ব দেয়, এবং প্রতিটি স্ক্রিন রিডারের এটি প্রয়োজন।

ব্যর্থ হলে: একটি বাস্তব টেক্সট সংস্করণসহ multipart/alternative পাঠান, খালি অংশ বা ব্রাউজারে এটি দেখতে বলছে এমন কোনো লাইন নয়।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 5 পয়েন্ট।

RFC 2046 §5.1.4 — Alternative Subtype

The "multipart/alternative" type is syntactically identical to "multipart/mixed", but the semantics are different. In particular, each of the body parts is an "alternative" version of the same information.

Google — Email sender guidelines

HTML-এর আকার content.html_weight

HTML অংশটি কত বড়। মোটামুটি ১০২ KB পেরিয়ে গেলে Gmail বার্তাটি কেটে দেয় এবং বাকিটা একটি লিংকের আড়ালে লুকিয়ে রাখে, যার সঙ্গে আপনার আনসাবস্ক্রাইব ফুটারও লুকিয়ে যায়।

ব্যর্থ হলে: ইনলাইন CSS এবং পুনরাবৃত্ত স্টাইল ব্লক কমান (অব্যবহৃত নিয়মগুলো সরানোর পর বেশিরভাগ টেমপ্লেট সীমার এক-তৃতীয়াংশের মধ্যে থাকে)।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 3 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 0.3।

Google — Email sender guidelines

ছবির আকার content.images_weight

বার্তাটি যে ছবিগুলো লোড করে সেগুলোর মোট আকার। ভারী ছবি ফোনে বার্তাকে ধীর করে, এবং শুধু ছবি দিয়ে তৈরি মেইলের কাঠামোকে ফিল্টার সন্দেহের চোখে দেখে।

ব্যর্থ হলে: ছবিগুলো কমপ্রেস করুন এবং ছবি বন্ধ থাকলেও বার্তাটি পড়া যায় কি না নিশ্চিত করুন।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 3 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 0.3।

Google — Email sender guidelines

অ্যাটাচমেন্ট স্ক্যানিং content.malware

অ্যাটাচমেন্টে পরিচিত ম্যালওয়্যার আছে কি না। যেসব ডেপ্লয়মেন্টে স্ক্যানার বন্ধ থাকে, সেখানে পরিষ্কার বলে রিপোর্ট করার বদলে এটি জানায় যে স্ক্যানারটি চলেনি।

ব্যর্থ হলে: এটি শনাক্ত হলে পাঠানো বন্ধ করুন এবং যে মেশিনে বার্তাটি তৈরি হয়েছে সেখানে কী আছে তা খুঁজে বের করুন।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 60 পয়েন্ট।

Google — Why Gmail marks messages as spam

ClamAV — how detection works

প্রিহেডার content.preheader

বিষয়ের পাশে ক্লায়েন্ট যে প্রিভিউ লাইন দেখায়। এটি না থাকলে বডির শুরুতে যা থাকে সেটিই দেখায়, যা সাধারণত ব্রাউজারে দেখার একটি লিংক।

ব্যর্থ হলে: বডির প্রথম উপাদান হিসেবে একটি লুকানো প্রিহেডার ব্লক যোগ করুন।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 2 পয়েন্ট।

Google — Email sender guidelines

বিষয় লাইন content.subject

দৈর্ঘ্য, বড় হাতের অক্ষরের ব্যবহার এবং ফিল্টার যে প্যাটার্নগুলোকে স্কোর করে। আমরা ডিকোড করা বিষয় লাইন পরিমাপ করি, তাই সিরিলিক বা CJK লাইনকে তার এনকোডিং হিসেবে নয়, টেক্সট হিসেবে বিচার করা হয়।

ব্যর্থ হলে: এটি প্রায় ৬০ অক্ষরের মধ্যে রাখুন, চিৎকারের মতো বড় হাতের অক্ষর এবং বিস্ময়চিহ্ন বাদ দিন।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 3 পয়েন্ট।

RFC 5322 §2.2 — Header Fields

Header fields are lines beginning with a field name, followed by a colon (":"), followed by a field body, and terminated by CRLF.

RFC 2047 §2 — Syntax of encoded-words

An 'encoded-word' is defined by the following ABNF grammar.

Google — Why Gmail marks messages as spam

সংক্ষিপ্ত লিংক content.url_shortener

লিংকগুলো কোনো পাবলিক শর্টেনারের মাধ্যমে যায় কি না। শর্টেনার গন্তব্য লুকিয়ে রাখে, আর ঠিক এটিই অবিশ্বাস করতে ফিল্টারগুলোকে প্রশিক্ষণ দেওয়া হয়।

ব্যর্থ হলে: আপনার নিজস্ব ডোমেইনে লিংক করুন, অথবা আপনারই একটি সাবডোমেইনে আপনার প্ল্যাটফর্মের ট্র্যাকিং ডোমেইন ব্যবহার করুন।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 5 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 0.5।

Google — Why Gmail marks messages as spam

বাল্ক প্রেরকের নিয়ম

বেশি পরিমাণে বার্তা পাঠানো ব্যক্তিদের জন্য Gmail ও Yahoo যে প্রয়োজনীয়তাগুলো প্রকাশ করে। এগুলো গণমেইলের ক্ষেত্রে প্রযোজ্য এবং গণমেইল বলে মনে হয় না এমন বার্তার ক্ষেত্রে এড়িয়ে যাওয়া হয়।

DMARC নীতি প্রকাশিত compliance.dmarc_present

From ডোমেইন আদৌ কোনো DMARC রেকর্ড প্রকাশ করে কি না, এই বার্তাটি সেটি পাস করেছে কি না তা থেকে আলাদাভাবে। Gmail এবং Yahoo বাল্ক প্রেরকদের কাছ থেকে এটি আবশ্যক করে।

ব্যর্থ হলে: একটি রেকর্ড প্রকাশ করুন। প্রয়োজনীয়তা পূরণের জন্য p=none যথেষ্ট এবং এটি আপনাকে কাজ করার জন্য রিপোর্ট দেয়।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 6 পয়েন্ট।

RFC 7489 §6.3 — General Record Format

p: Requested Mail Receiver policy (plain-text; REQUIRED for policy records).

Google — Requirements for bulk senders (5,000+/day)

Yahoo — Sender requirements and recommendations

List-Unsubscribe compliance.list_unsubscribe

বার্তাটিতে এমন একটি আনসাবস্ক্রাইব হেডার আছে কি না, যার ভিত্তিতে একটি মেইল ক্লায়েন্ট কাজ করতে পারে। Gmail এবং Yahoo বাল্ক প্রেরকদের জন্য এটি আবশ্যক করে, এবং অন্য সবকিছু নির্বিশেষে এটি না থাকলে ফিল্টার করা হয়।

ব্যর্থ হলে: একটি HTTPS URI সহ List-Unsubscribe হেডার যোগ করুন। প্রতিটি প্রেরণ প্ল্যাটফর্ম এটি করতে পারে।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 10 পয়েন্ট এবং ক্লাসিক স্কোরে ১০-এর মধ্যে সর্বোচ্চ 1।

RFC 2369 §3.2 — List-Unsubscribe

The List-Unsubscribe field describes the command (preferably using mail) to directly unsubscribe the user (removing them from the list).

Google — Requirements for bulk senders (5,000+/day)

Yahoo — Sender requirements and recommendations

এক-ক্লিক আনসাবস্ক্রাইব compliance.one_click_unsubscribe

আরও কঠোর রূপ: একটি HTTPS URI, একটি "List-Unsubscribe-Post" হেডার, এবং উভয় হেডার অন্তর্ভুক্তকারী একটি একক বৈধ DKIM স্বাক্ষর। তিনটিই থাকতে হবে, নইলে প্রাপক বোতামটি দেখায় না।

ব্যর্থ হলে: সাধারণত স্বাক্ষরটিই বাদ পড়ে: প্ল্যাটফর্মগুলো "List-Unsubscribe" স্বাক্ষর করে এবং "List-Unsubscribe-Post" ভুলে যায়। উভয় হেডারের নাম একই স্বাক্ষরের h= ট্যাগে থাকতে হবে।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 8 পয়েন্ট।

RFC 8058 §4 — Additional Requirements

The List-Unsubscribe and List-Unsubscribe-Post headers MUST be covered by the signature and included in the "h=" tag of a valid DKIM-Signature header field.

RFC 8058 §3.1 — Mail Senders

The List-Unsubscribe header field MUST contain one HTTPS URI.

Google — Requirements for bulk senders (5,000+/day)

Yahoo — Sender requirements and recommendations

বাল্ক মেইলের জন্য TLS compliance.tls_required

বার্তাটি এনক্রিপ্ট করা অবস্থায় এসেছে কি না। অবকাঠামো পরীক্ষাটি আগে চালানো হয়ে থাকলে এর আওতায় এটি অন্তর্ভুক্ত থাকে।

ব্যর্থ হলে: উপরের পরিবহন এনক্রিপশন পরীক্ষাটি দেখুন।

ক্ষতি আমাদের স্কোরে ১০০-এর মধ্যে সর্বোচ্চ 5 পয়েন্ট।

Google — Require TLS for secure message transport

Google — Requirements for bulk senders (5,000+/day)

সুপারিশ

এগুলো করা উচিত এবং কখনো স্কোর করা হয় না। এই বিভাগের কোনো কিছুতেই পয়েন্ট কমতে পারে না, যা একটি পণ্যগত সিদ্ধান্ত এবং পরীক্ষাগুলো সেটিই কার্যকর করে।

BIMI advisory.bimi

ডোমেইনটি একটি BIMI রেকর্ড প্রকাশ করে কি না, যা কিছু ক্লায়েন্টে আপনার বার্তার পাশে একটি লোগো দেখায়। এর জন্য প্রথমে একটি কার্যকর DMARC নীতি এবং অর্থ খরচ করে পাওয়া একটি যাচাইকৃত মার্ক সার্টিফিকেট প্রয়োজন।

ব্যর্থ হলে: DMARC quarantine বা reject পর্যায়ে পৌঁছালে এবং ভলিউম সার্টিফিকেটের ব্যয়কে যৌক্তিক করলে এটি করা সার্থক।

পরামর্শমূলক। কোনো পয়েন্ট কমে না।

BIMI — draft specification, not yet an RFC

DKIM কী-এর বয়স ও দৈর্ঘ্য advisory.dkim_key_rotation

স্বাক্ষরকারী কী-এর দৈর্ঘ্য এবং সেটি কত দিন ধরে ব্যবহৃত হচ্ছে। প্রতি বছর অতিবাহিত হওয়ার সঙ্গে ছোট কী-তে অফলাইনে আক্রমণ করা কম ব্যয়বহুল হয়।

ব্যর্থ হলে: ২০৪৮ বিটে স্থানান্তর করুন এবং নির্ধারিত সময়সূচি অনুযায়ী কী পরিবর্তন করুন। নতুন সিলেক্টর প্রকাশ করুন, সেটি দিয়ে স্বাক্ষর করা শুরু করুন, তারপর পুরোনোটি অবসরে দিন।

পরামর্শমূলক। কোনো পয়েন্ট কমে না।

RFC 8301 §3.2 — Key Sizes

Since short RSA keys more easily succumb to off-line attacks, Signers MUST use RSA keys of at least 1024 bits for all keys. Signers SHOULD use RSA keys of at least 2048 bits.

Google — Turn on DKIM for your domain

DNSSEC advisory.dnssec

ডোমেইনটি স্বাক্ষরিত কি না। SPF, DKIM এবং DMARC সবই DNS-এ থাকে, তাই কোনো আক্রমণকারী DNS উত্তর জাল করতে পারলে তিনটিই জাল করতে পারে।

ব্যর্থ হলে: আপনার রেজিস্ট্রারে এটি সক্রিয় করুন। সাধারণত এটি একটি সুইচেই করা যায়, এবং বাকি কাজ রেজিস্ট্রার সম্পন্ন করে।

পরামর্শমূলক। কোনো পয়েন্ট কমে না।

RFC 4033 §2 — Definitions of Important DNSSEC Terms

Authentication Chain: An alternating sequence of DNS public key (DNSKEY) RRsets and Delegation Signer (DS) RRsets

MTA-STS advisory.mta_sts

ডোমেইনটি এমন একটি নীতি প্রকাশ করে কি না, যা অন্য সার্ভারগুলোকে আপনার কাছে এনক্রিপ্ট না করা ডেলিভারি প্রত্যাখ্যান করতে বলে। এটি আপনার পাঠানো মেইলের বদলে আপনাকে পাঠানো মেইল সুরক্ষিত করে।

ব্যর্থ হলে: HTTPS-এর মাধ্যমে TXT রেকর্ড এবং নীতি ফাইল প্রকাশ করুন (এক বিকেলের কাজ, এবং এটি একটি ডাউনগ্রেড আক্রমণের পথ বন্ধ করে)।

পরামর্শমূলক। কোনো পয়েন্ট কমে না।

RFC 8461 §3 — Policy Discovery

To discover if a recipient domain implements MTA-STS, a sender need only resolve a single TXT record.

TLS প্রতিবেদন advisory.tls_rpt

TLS-এর মাধ্যমে কেউ ডোমেইনটিতে বার্তা পৌঁছে দিতে ব্যর্থ হলে ডোমেইনটি প্রতিবেদন চায় কি না। MTA-STS-এর সঙ্গে এটি কাজ করে: প্রতিবেদন ছাড়া নীতিটি কার্যকর কি না তা বোঝার উপায় থাকে না।

ব্যর্থ হলে: দৈনিক প্রতিবেদন গ্রহণ করে এমন একটি ঠিকানাসহ TXT রেকর্ড যোগ করুন।

পরামর্শমূলক। কোনো পয়েন্ট কমে না।

RFC 8460 §3 — Reporting Policy

A domain publishes a record to its DNS indicating that it wishes to receive reports.