এই পৃষ্ঠায়WordPress ডিফল্টভাবে যেভাবে ইমেল পাঠায়
একটি WordPress সাইট থেকে মালিকের ধারণার চেয়ে বেশি ইমেল পাঠানো হয়। কনট্যাক্ট ফর্মের নোটিফিকেশন, পাসওয়ার্ড রিসেট, নতুন ব্যবহারকারীর স্বাগত বার্তা, মন্তব্য মডারেশনের সতর্কতা, আর শপ হলে WooCommerce-এর প্রতিটি অর্ডার নিশ্চিতকরণ, ইনভয়েস ও শিপিং আপডেট। এগুলোর বেশিরভাগই কেউ আলাদাভাবে ডিজাইন করে না, আর কোনো গ্রাহক অর্ডারের ইমেল পাননি বলে না জানানো পর্যন্ত কেউ এগুলো পরীক্ষা করে না।
এগুলোর কোনোটি স্প্যামে গেলে, ইমেলের ভাষা বদলানোর আগে দেখুন বার্তাটি কীভাবে সার্ভার থেকে পাঠানো হচ্ছে। WordPress-এ ডিফল্টভাবে এই অংশটির জন্য এমন একটি পদ্ধতি নির্ধারিত থাকে, যার ইমেল পৌঁছানোর সম্ভাবনা সবচেয়ে কম।
WordPress ডিফল্টভাবে যেভাবে ইমেল পাঠায়
WordPress নিজে এবং ইমেল পাঠানো প্রায় প্রতিটি প্লাগইন, যার মধ্যে WooCommerce ও ফর্ম প্লাগইনও রয়েছে, একটি ফাংশন ব্যবহার করে: wp_mail()। এটি বার্তাটি PHPMailer-এর কাছে দেয়। PHPMailer ডিফল্টভাবে সেটি PHP-এর mail()-এ পাঠায়, যা আবার হোস্টিং সার্ভারে থাকা মেইল প্রোগ্রামের কাছে দেয়। কোনো মেইল প্রদানকারীতে লগইন করা হয় না, কোনো স্বাক্ষর যোগ করা হয় না, আর আপনার DNS-এ এমন কিছু থাকে না যা জানায় যে এই সার্ভার আপনার ডোমেইনের হয়ে ইমেল পাঠাতে পারে।
এটি প্রেরকের ঠিকানা হিসেবে wordpress@-এর পরে আপনার সাইটের ডোমেইন ব্যবহার করে (WordPress শুরুর www. বাদ দেয়)। আপনি এটি কখনো পরিবর্তন না করলে, আপনার গ্রাহকেরা From লাইনে এই ঠিকানাই দেখেন। অনেক সাইটে কেউ কখনো এই মেইলবক্সটি তৈরিই করেনি।
শেয়ার্ড হোস্টিংয়ে বার্তাটি এরপর হোস্টের সার্ভার থেকে এমন একটি IP ঠিকানা দিয়ে পাঠানো হয়, যা আরও অনেক সাইট ব্যবহার করে। সেগুলোর কোনোটি কেনা তালিকায় ইমেল পাঠালে, অথবা হ্যাক হয়ে স্প্যাম পাঠাতে শুরু করলে, IP ঠিকানাটির সুনাম খারাপ হয়। তখন আপনার পাসওয়ার্ড রিসেট ইমেলও তাদের ইমেলের মতো একই ঠিকানা থেকে পাঠানো হয়।
তাই WordPress-এর ডিফল্ট ইনস্টলেশন এমন ইমেল পাঠায়, যার SPF আপনার ডোমেইনের সঙ্গে সামঞ্জস্যপূর্ণ নয়। বাউন্স ঠিকানাটি সাধারণত হোস্টের নিজস্ব সার্ভার নামেই থাকে। এর বদলে সেখানে আপনার ঠিকানা থাকলে SPF সরাসরি ব্যর্থ হয়। আপনার ডোমেইনের জন্য কোনো DKIM স্বাক্ষরও থাকে না, তাই DMARC ব্যর্থ হয়। Gmail ও Yahoo ২০২৪ সালের ফেব্রুয়ারিতে প্রেরকদের জন্য তাদের নিয়ম কার্যকর করে। Microsoft ২০২৫ সালের মে মাসে Outlook.com-এ প্রতিদিন ৫,০০০টির বেশি বার্তা পাঠানো ডোমেইনের জন্য একই কাজ করে। আর ২০২৫ সালের নভেম্বর থেকে Gmail নিয়ম ভঙ্গ করা আরও বেশি ইমেল স্প্যাম ফোল্ডারে রাখার বদলে প্রত্যাখ্যান করছে।
প্রকৃত মেইল সার্ভিসের মাধ্যমে পাঠান
সবচেয়ে গুরুত্বপূর্ণ সমাধান হলো mail() ব্যবহার বন্ধ করা। একটি SMTP প্লাগইন ইনস্টল করুন (WP Mail SMTP, FluentSMTP ও Post SMTP প্রচলিত বিকল্প, এবং প্রতিটিরই বিনামূল্যের সংস্করণ আছে) এবং সেটিকে এমন একটি সার্ভিসের সঙ্গে সংযুক্ত করুন, যা সঠিকভাবে মেইল পাঠায়: আপনার নিজস্ব মেইলবক্স প্রদানকারী, যেমন Google Workspace বা Microsoft 365, অথবা Amazon SES, Brevo, SendGrid বা Mailgun-এর মতো ট্রানজ্যাকশনাল সার্ভিস।
প্লাগইনটি wp_mail()-এর অধীনে থাকা ট্রান্সপোর্ট প্রতিস্থাপন করে। ফলে প্লাগইনগুলোতে কোনো পরিবর্তন না করেই প্রতিটি প্লাগইনের সব ইমেল নতুন পথে যায়। প্লাগইনে প্রদানকারীর API বিকল্প থাকলে, পাসওয়ার্ডসহ সাধারণ SMTP-এর বদলে সেটি ব্যবহার করুন। WP Mail SMTP উল্লেখ করেছে, আপনার হোস্ট SMTP পোর্ট ব্লক করলেও API পদ্ধতি কাজ করে।
অনেকে পরের অংশটি বাদ দেন। ওই প্রদানকারীর কাছে ডোমেইনটি প্রমাণীকরণ করুন: তাদের প্রত্যেকেই প্রকাশ করার জন্য আপনাকে DNS রেকর্ড দেয়, সাধারণত DKIM-এর জন্য দুই বা তিনটি CNAME রেকর্ড এবং একটি SPF include অথবা কাস্টম return-path ডোমেইন। এই রেকর্ডগুলো আপনার DNS-এ যোগ না করা পর্যন্ত প্রদানকারী স্বাক্ষরে নিজের নাম ব্যবহার করে, এবং হোস্টে যেমন হয়েছিল, এখানেও DMARC ব্যর্থ হয়।
যোগাযোগ ফর্মের From ঠিকানা
Contact Form 7 ও WPForms-সহ বিভিন্ন ফর্ম প্লাগইন আপনাকে পাওয়া নোটিফিকেশনের From লাইনে কী থাকবে, তা বেছে নিতে দেয়। অনেক সেটআপে সেখানে ভিজিটরের ঠিকানা রাখা হয়, যাতে Reply চাপলে উত্তরটি ভিজিটরের কাছে যায়। এটিকে বুদ্ধিদীপ্ত মনে হলেও, ঠিক এই কাজ ঠেকাতেই DMARC তৈরি করা হয়েছে।
ধরুন, Anna নামের একজন ভিজিটর anna@yahoo.com থেকে লিখেছেন। এখন আপনার সাইট এমন একটি বার্তা পাঠাচ্ছে, যা yahoo.com থেকে এসেছে বলে দাবি করছে, কিন্তু সেটি এমন একটি সার্ভারের মাধ্যমে পাঠানো হচ্ছে যেটিকে Yahoo কখনো অনুমোদন দেয়নি। yahoo.com p=reject DMARC নীতি প্রকাশ করে, তাই এই নীতি অনুসরণকারী প্রাপক নোটিফিকেশনটিকে জাল হিসেবে প্রত্যাখ্যান করে। Gmail ব্যবহারকারী কোনো ভিজিটরের ক্ষেত্রে নীতিটি তুলনামূলক নমনীয়, ফলে বার্তাটি প্রায়ই স্প্যামে চলে যায়। WPForms তাদের ডকুমেন্টেশনে ঠিক এই বিষয়েই সতর্ক করে।From-এ থাকবেন আপনি, Reply-To-তে থাকবেন ভিজিটর
এর বদলে এভাবে সেটআপ করুন:
- From: আপনার নিজের ডোমেইনের একটি ঠিকানা, যেমন
forms@yourdomain.com, যে ডোমেইনের জন্য আপনার SMTP প্লাগইন অথেন্টিকেট করা আছে। - Reply-To: ফর্ম ফিল্ড থেকে নেওয়া ভিজিটরের ঠিকানা। Reply চাপলে উত্তরটি এখনও Anna-র কাছেই যাবে।
- To: আপনি আসলে যে মেইলবক্সটি পড়েন।
Contact Form 7-এ এটি Mail ট্যাবে রয়েছে: From-এ আপনার নিজের ঠিকানা দিন এবং Additional headers-এর অধীনে Reply-To: [your-email] যোগ করুন। অন্য ফর্ম প্লাগইনগুলোর নোটিফিকেশন সেটিংসে Reply-To ফিল্ড থাকে।
WooCommerce ইমেল
WooCommerce-এর নিজস্ব প্রেরক সেটিংস রয়েছে: WooCommerce, তারপর Settings, তারপর Emails, এবং Email Sender Options অংশে একটি "From" name ও একটি "From" address। ডিফল্টভাবে address-টি সাইটের admin email। যিনি দোকানটি ইনস্টল করেছেন তিনি এর জন্য Gmail address ব্যবহার করে থাকলে, প্রতিটি অর্ডার নিশ্চিতকরণ ইমেল নিজেকে gmail.com থেকে আসা বলে দাবি করে এবং উপরের কনট্যাক্ট ফর্মের মতো একই কারণে DMARC যাচাইয়ে ব্যর্থ হয়। এখানে আপনার প্রমাণীকৃত ডোমেনের একটি address দিন। প্রেরকের নাম হিসেবে দোকানের নাম ভালো। (আপনাকে পাঠানো অর্ডার নোটিফিকেশনে WooCommerce ইতিমধ্যেই গ্রাহককে Reply-To-তে রাখে, এটিই সঠিক পদ্ধতি।)
দোকানের ইমেলে দুটি সমস্যা হয়, যা কনট্যাক্ট ফর্মে হয় না।
প্রথমটি হলো পরিমাণ। অর্ডার নিশ্চিতকরণের একই পথে কোনো সেল বা নিউজলেটার প্লাগইন গ্রাহকদের ইমেল পাঠালে, একই সুনামের অধীনে মার্কেটিং ও ট্রানজ্যাকশনাল ইমেল মিশে যায়। নিউজলেটার নিয়ে অভিযোগ এলে রসিদ পাঠানোও ক্ষতিগ্রস্ত হয়। দুটি আলাদা পরিষেবার মাধ্যমে পাঠালে সেগুলো পৃথক থাকে। মার্কেটিংয়ের জন্য আলাদা সাবডোমেন ব্যবহার করলেও কিছুটা উপকার হয়, যদিও গ্রহণকারী সার্ভারগুলো মূল ডোমেনের সুনামকেও কিছুটা গুরুত্ব দেয়।
দ্বিতীয়টি হলো আনসাবস্ক্রাইবের বিষয়। অর্ডার নিশ্চিতকরণ ও পাসওয়ার্ড রিসেট ট্রানজ্যাকশনাল ইমেল, তাই Gmail ও Yahoo-এর এক ক্লিকে আনসাবস্ক্রাইব করার নিয়ম এগুলোর ক্ষেত্রে প্রযোজ্য নয়। অতীতের ক্রেতাদের পাঠানো রিভিউয়ের অনুরোধ, পরিত্যক্ত কার্টের রিমাইন্ডার বা "you might also like" ইমেল মার্কেটিং ইমেল। আপনি এগুলো বেশি পরিমাণে পাঠালে নিয়মটি পুরোপুরি প্রযোজ্য হয়, অর্থাৎ এক ক্লিকে আনসাবস্ক্রাইব করার বিকল্পসহ একটি List-Unsubscribe হেডার থাকতে হবে। যে অ্যাড-অন এগুলো পাঠায়, সেটি ওই হেডার যোগ করে কি না পরীক্ষা করুন। যোগ করুক বা না করুক, নিচের পরীক্ষায় তা দেখা যাবে।
DNS-এর দিকটি, সহজ ভাষায়
আপনি যে পরিষেবা দিয়েই ইমেল পাঠান না কেন, ইমেলটি বিশ্বস্ত হিসেবে বিবেচিত হওয়ার জন্য আপনার ডোমেইনের DNS-এ তিনটি জিনিস থাকতে হবে। বিস্তারিত ধাপে ধাপে নির্দেশনা রয়েছে SPF, DKIM ও DMARC-এর ব্যাখ্যা-তে। WordPress সাইটের জন্য এর অর্থ এখানে দেওয়া হলো।
- SPF। আপনার ডোমেইনের হয়ে কারা ইমেল পাঠাতে পারে, তা উল্লেখ করে একটি TXT রেকর্ড। অনেক ইমেল পাঠানোর পরিষেবার ক্ষেত্রে এখানে কোনো পরিবর্তন দরকার হয় না, কারণ তারা নিজেদের বাউন্স ডোমেইনের মাধ্যমে অ্যালাইন করে। আপনার পরিষেবা যদি একটি
include:যোগ করতে বলে এবং ডোমেইনে আপনার মেইলবক্স প্রদানকারীর জন্য ইতিমধ্যে একটি রেকর্ড থাকে, তাহলে সেটি ওই রেকর্ডেই যোগ করুন। দ্বিতীয় রেকর্ড তৈরি করবেন না। দুটি SPF রেকর্ড থাকা একটি ত্রুটি এবং এতে দুটিই কাজ করা বন্ধ করে দেয়। SPF পরীক্ষক দিয়ে ফলাফল পরীক্ষা করুন। - DKIM। আপনার ইমেল পাঠানোর পরিষেবা আপনাকে যে রেকর্ডগুলো দিয়েছে। সেগুলো সক্রিয় হলে পরিষেবাটি আপনার ডোমেইন দিয়ে প্রতিটি বার্তায় স্বাক্ষর করে, আর DMARC এই স্বাক্ষরটিই খোঁজে।
- DMARC।
_dmarc.yourdomain.com-এ একটি TXT রেকর্ড।v=DMARC1; p=none; rua=mailto:এবং আপনি নিয়মিত পড়েন এমন একটি ঠিকানা দিয়ে শুরু করুন। এরপর রিপোর্টে আপনার কোনো ইমেল ব্যর্থ হচ্ছে না দেখা গেলে নীতি আরও কঠোর করুন। আপনার বর্তমান রেকর্ডটি DMARC পরীক্ষক পড়ে দেখায়।
মনে রাখবেন, হোস্টিং সার্ভার নিজে থেকেও কিছু ইমেল পাঠাতে পারে, যেমন কোনো cron job বা পুরোনো প্লাগইন, যা wp_mail()-এর বদলে সরাসরি mail() কল করে। এসব বার্তা SMTP প্লাগইন এড়িয়ে যায় এবং DMARC রিপোর্টে এগুলোকে আপনার অপ্রত্যাশিত উৎস হিসেবে দেখাবে।
টেস্ট মেসেজ নয়, আসল ইমেল পরীক্ষা করা
প্রতিটি SMTP প্লাগইনে একটি "send test email" বোতাম থাকে, আর এটি শুধু প্রমাণ করে যে সংযোগটি কাজ করছে। WooCommerce যেভাবে অর্ডার নিশ্চিতকরণ ইমেল তৈরি করে, Reply-To-সহ ফর্মের নোটিফিকেশন, অথবা WordPress-এর যোগ করা লিংকসহ পাসওয়ার্ড রিসেট ইমেল, এগুলোর কোনোটিই এতে দেখা যায় না।
তাই আমি WordPress দিয়ে আসল ইমেলগুলো পাঠাই। হোম পেজের একটি টেস্ট ঠিকানা একটি মেসেজ গ্রহণ করে, তাই আপনি পরীক্ষা করতে চান এমন প্রতিটি ইমেলের জন্য নতুন ঠিকানা নিন। ফর্ম পরীক্ষা করতে, এক মিনিটের জন্য ঠিকানাটি নোটিফিকেশন প্রাপক হিসেবে সেট করে ফর্মটি জমা দিন। WooCommerce-এর জন্য, গ্রাহকের ইমেল হিসেবে ঠিকানাটি ব্যবহার করে একটি টেস্ট অর্ডার দিন। পাসওয়ার্ড রিসেটের জন্য, একজন টেস্ট ব্যবহারকারীকে ঠিকানাটি দিন এবং রিসেটের অনুরোধ করুন। প্রতিটি মেসেজের জন্য আলাদা রিপোর্ট তৈরি হয়, যেখানে SPF, DKIM ও DMARC এবং সেগুলোর অ্যালাইনমেন্ট, ২১টি ব্লকলিস্ট, কনটেন্ট ও লিংক এবং বাল্ক প্রেরকের নিয়মগুলো থাকে। Gmail, Outlook, Yahoo ও অন্যান্য প্রদানকারীতে মেসেজটি কোন ফোল্ডারে যায় তা জানতে, বিষয় লাইনে একটি মার্কারসহ একই মেসেজ একাধিক ইনবক্সের তালিকায় পাঠাতে হয়। কোনো ফর্ম বা দোকানের অর্ডার এটি করতে পারে না, তাই এই অংশটি আপনি নিজে পাঠান এমন ইমেলের জন্য রাখুন।
আপনি হাতে টেস্ট অর্ডার তৈরি করতে না চাইলে, বিনামূল্যের WordPress প্লাগইনটি আপনার সাইটের নিজস্ব wp_mail() দিয়ে এসব মেসেজ পাঠায়। এটি আপনার গ্রাহকদের ইমেল পাঠানোর একই পথ এবং ফলাফল ড্যাশবোর্ডে দেখায়। সাইটটি আগে দেখা যায়নি এমন কোনো ধরনের ইমেল পাঠাতে শুরু করলেও প্লাগইনটি তা শনাক্ত করে।
তারপরও স্প্যামে গেলে
প্রমাণীকরণ পাস করার পরও যদি From ঠিকানাটি আপনার ডোমেইনের হয় এবং ইমেলটি স্প্যামে যায়, তাহলে যে অবকাঠামোর মাধ্যমে পাঠাচ্ছেন তার সুনাম পরীক্ষা করুন। আপনি এখনও mail() ব্যবহার করলে ব্লকলিস্টে থাকা শেয়ার্ড হোস্টিং IP একটি সাধারণ কারণ, আর ব্লকলিস্ট পরীক্ষক সেটি দেখাবে। সাধারণ ধারণার তুলনায় কনটেন্টের ভূমিকা কম। একটি লিংক ও তিন লাইনের লেখা থাকা ফর্ম নোটিফিকেশন সাধারণত নিজে থেকে কোনো ফিল্টার সক্রিয় করে না। কিন্তু ভারী HTML টেমপ্লেট, একটি বড় ছবি ও লিংক শর্টেনার থাকা WooCommerce ইমেল তা করতে পারে।
একটি মেসেজ পরীক্ষা করুন, রিপোর্টে দেখানো সমস্যাগুলো ঠিক করুন এবং নতুন একটি ঠিকানায় আবার পাঠান।