Single Sends-এ তৈরি একটি নিউজলেটার এবং /v3/mail/send দিয়ে পাঠানো পাসওয়ার্ড রিসেট একই SendGrid অ্যাকাউন্ট থেকে পাঠানো হলেও প্রাপকের কাছে বেশ ভিন্ন ইমেল হিসেবে পৌঁছাতে পারে। স্প্যাম পরীক্ষার ক্ষেত্রে এটি গুরুত্বপূর্ণ। Marketing Campaigns সব সময় আনসাবস্ক্রাইব হেডার যোগ করার চেষ্টা করে, কিন্তু API শুধু তখনই সেগুলো যোগ করে যখন আপনি তা করতে বলেন। তাই কিছু পাঠানোর আগে ঠিক করুন, আপনি এই দুটির মধ্যে কোনটি পরীক্ষা করছেন।
উভয়ের ক্ষেত্রেই গ্রহণের প্রক্রিয়া একই। Email Spam Tester আপনাকে একটি অস্থায়ী ঠিকানা দেয়, কোনো অ্যাকাউন্টের প্রয়োজন নেই। এক ঘণ্টার মধ্যে পৌঁছানো শুধু প্রথম বার্তাটিই গণনা করা হয়। সেটির জন্য এমন একটি রিপোর্ট তৈরি হয়, যাতে অথেন্টিকেশন, SpamAssassin ও Rspamd-এর ফলাফল, কনটেন্ট, Gmail ও Yahoo নির্ধারিত বাল্ক প্রেরকের নিয়ম এবং আপনার প্রেরণকারী IP দিয়ে যাচাই করা ২১টি ব্লকলিস্ট অন্তর্ভুক্ত থাকে।
Single Sends: টেস্ট বাটন ও এর প্রিফিক্স
বিল্ট-ইন টেস্টটি Marketing > Single Sends-এ রয়েছে। Single Send খুলুন, Test Your Email খুঁজুন, টেস্ট ঠিকানা লিখুন এবং Send Test Message-এ ক্লিক করুন। টেস্ট করতে দেওয়ার আগে SendGrid-এর একজন প্রেরক ও একটি বিষয় প্রয়োজন। বিষয়ের মধ্যে Handlebars থাকলে Test Data পূরণ করতে হবে। পাঠানোর সময় SendGrid বিষয়ের শুরুতে Test - যোগ করে।
প্রকৃত পরীক্ষার জন্য Single Send-টি একটি তালিকায় পাঠান। Single Sends তালিকা বা সেগমেন্টে পাঠানো হয়, তাই শুধু টেস্ট ঠিকানাটিকে পরিচিতি হিসেবে রেখে একটি তালিকা তৈরি করুন এবং Recipients-এর অধীনে সেটি নির্বাচন করুন। এখন হেডার, আনসাবস্ক্রাইব লিংক ও ট্র্যাক করা লিংকগুলো একজন সাবস্ক্রাইবার যা পান, সেগুলোই হবে। আপনি ইনবক্স টেস্টও নিয়ে থাকলে, এর প্রদানকারী ইনবক্সগুলোকে ওই তালিকায় যোগ করতে পারেন।
API ও SMTP: একটি curl কমান্ড
SendGrid-এর getting-started উদাহরণটি সংক্ষিপ্ত করে, প্রাপক হিসেবে টেস্ট ঠিকানা ব্যবহার করা হয়েছে:
curl --request POST \
--url https://api.sendgrid.com/v3/mail/send \
--header 'Authorization: Bearer <<YOUR_API_KEY>>' \
--header 'Content-Type: application/json' \
--data '{"personalizations":[{"to":[{"email":"test-xxxxxxxxxxxxxxxxxxxx@t.email-spam-tester.com"}],"subject":"Hello, World!"}],"content":[{"type":"text/plain","value":"Heya!"}],"from":{"email":"you@yourdomain.com","name":"Your Name"}}'
ইনবক্স টেস্ট চালু থাকলে, আপনার প্রদানকারীর ইনবক্সগুলো একই to অ্যারেতে যায় এবং মার্কারটি subject-এ যায়। ফলে একটি অনুরোধ থেকেই আপনি জানতে পারেন Gmail, Outlook, Yahoo ও অন্যান্য প্রদানকারী ইমেলটি কোন ফোল্ডারে রেখেছে।
আপনার নিজের টেস্ট ঠিকানা এবং SendGrid যাচাই করেছে এমন একটি From ঠিকানা বসান। যাচাইটি single sender verification বা domain authentication-এর মাধ্যমে হতে পারে। আরও ভালো হয়, আপনার অ্যাপ আসলে যে বার্তাটি পাঠায় সেটিই তার আসল HTML-সহ পাঠান, কারণ কনটেন্ট পরীক্ষাগুলো বডিতে যা আছে তার ভিত্তিতে স্কোর দেবে।
আপনার অ্যাপ্লিকেশন SMTP ব্যবহার করলে, শুধু ট্রান্সপোর্ট ছাড়া আর কিছু বদলায় না। হোস্ট হলো smtp.sendgrid.net, ইউজারনেম আক্ষরিক অর্থেই apikey স্ট্রিংটি, আপনার key নয়, এবং SSL পোর্ট 465-এ চলে।
POST /v3/marketing/test/send_email নামে একটি test-send endpoint-ও আছে। এটি সর্বোচ্চ 10টি ঠিকানা নেয়, তবে শুধু Dynamic Transactional Templates-এর সঙ্গে কাজ করে। তাই বেশিরভাগ API মেইলের জন্য উপরের সাধারণ Mail Send কলটিই প্রকৃত পরীক্ষা।
আনসাবস্ক্রাইব হেডার আপনার বেছে নেওয়া পদ্ধতির ওপর নির্ভর করে
Marketing Campaigns প্রতিবার List-Unsubscribe হেডার যোগ করার চেষ্টা করে। API বা SMTP-এর মাধ্যমে পাঠানো মেইলে এগুলো শুধু তখনই যোগ হয়, যখন Settings > Tracking-এর অধীনে Subscription Tracking চালু থাকে। সে ক্ষেত্রে SendGrid একটি HTTPS লিংকসহ List-Unsubscribe এবং List-Unsubscribe-Post: List-Unsubscribe=One-Click যোগ করে।
Subscription Tracking চালু না থাকলে আপনাকে অনুরোধে নিজেই হেডারগুলো যোগ করতে হবে:
"headers": {
"List-Unsubscribe-Post": "List-Unsubscribe=One-Click",
"List-Unsubscribe": "<mailto:unsubscribe@yourdomain.com>, <https://yourdomain.com/unsubscribe>"
}
SendGrid mailto ও https উভয় অংশই চায় এবং ওই লিংকে সাধারণ GET অনুরোধের মাধ্যমে কাউকে আনসাবস্ক্রাইব না করার সতর্কতা দেয়। এই হেডারগুলো সম্পর্কে SendGrid-এর সহায়তা নিবন্ধ থেকে কপি করার সময় সতর্ক থাকুন। এর দ্বিতীয় নমুনায় List-Unsubscribe-Post-এর মান হিসেবে URL দেওয়া হয়েছে, যা ভুল। মানটি সব সময় List-Unsubscribe=One-Click। বাকি তথ্য আমাদের List-Unsubscribe সমাধানের পৃষ্ঠায় রয়েছে।
বার্তাটি পাসওয়ার্ড রিসেট বা রসিদসংক্রান্ত হলে এবং এতে কোনো তালিকা হেডার না থাকলে, রিপোর্টে Bulk sender rules গ্রুপটিকে ব্যর্থ না দেখিয়ে বাদ দেওয়া হিসেবে চিহ্নিত করা হয়। API-এর মাধ্যমে পাঠানো নিউজলেটার এই ছাড় পায় না।
প্রমাণীকরণের ফলাফল বোঝা
ডোমেইন প্রমাণীকরণ ছাড়া কোনো অ্যাকাউন্ট থেকে পাঠালে, প্রাপক আপনার From ঠিকানার পরে "via sendgrid.net" দেখতে পান। SendGrid-এর ডকুমেন্টেশন অনুযায়ী, ডোমেইন প্রমাণীকরণ এটি সরিয়ে দেয়। রিপোর্টে শুধু এই ট্যাগের চেয়েও বেশি তথ্য থাকে। DKIM ও SPF অ্যালাইনমেন্টের লাইনগুলো দেখুন। স্বাক্ষর বা রিটার্ন পাথ আপনার ডোমেইনের পরিবর্তে SendGrid-এর কোনো ডোমেইনের হলে, আপনার From ঠিকানার জন্য DMARC পাস করতে পারে না। সে ক্ষেত্রে পরিকল্পনায় আপনাকে ডোমেইন প্রমাণীকরণ সেট আপ করতে বলা উচিত। gmail.com বা yahoo.com ঠিকানা থেকে পাঠানো আরও খারাপ। SendGrid-এর DMARC পেজ অনুযায়ী, এসব ঠিকানার ক্ষেত্রে SPF ও DKIM দুটিই ব্যর্থ হয়। কনসোলেও সতর্ক করা হয় যে এ ধরনের বার্তা DMARC পরীক্ষায় ব্যর্থ হতে পারে।
ডোমেইন প্রমাণীকরণের সেটিং Settings > Sender Authentication-এ রয়েছে। ডিফল্টভাবে চালু থাকা automated security ব্যবহার করলে, SendGrid আপনাকে চারটি রেকর্ড দেয়:
em[0000]-এ একটি CNAME, যা SPF পরিচালনা করে এবং আপনার রিটার্ন পাথ হয়;- DKIM-এর জন্য
s1._domainkeyওs2._domainkey-এ CNAME; _dmarc-এv=DMARC1; p=none;মানসহ একটি TXT।
উদাহরণের মান। আপনার অ্যাকাউন্ট থেকে আসল মানগুলো কপি করুন।
| নাম | ধরন | মান | যে কাজে ব্যবহৃত হয় | কপি করুন |
|---|---|---|---|---|
| Automated security চালু (ডিফল্ট) | ||||
| em[0000] | CNAME | আপনার অ্যাকাউন্টে দেওয়া টার্গেট | SPF ও রিটার্ন পাথ। | |
| s1. | CNAME | আপনার অ্যাকাউন্টে দেওয়া টার্গেট | DKIM। | |
| s2. | CNAME | আপনার অ্যাকাউন্টে দেওয়া টার্গেট | DKIM, দ্বিতীয় selector। | |
| _dmarc | TXT | v= | DMARC। | |
| Automated security বন্ধ | ||||
| em[0000] | MX | আপনার অ্যাকাউন্টে দেওয়া হোস্ট | রিটার্ন পাথ। | |
| em[0000] | TXT | v= | SPF, যা আপনাকে নিজে পরিচালনা করতে হবে। | |
| m1. | TXT | আপনার অ্যাকাউন্টে দেওয়া কী | DKIM। | |
Automated security বন্ধ থাকলে, আপনি em[0000]-এ একটি MX ও একটি SPF TXT (v=spf1 include:sendgrid.net ~all) এবং m1._domainkey-এ একটি DKIM TXT পাবেন। SPF রেকর্ডটি আপনাকেই পরিচালনা করতে হবে। আপনার DNS প্রদানকারী _ থাকা CNAME নাম প্রত্যাখ্যান করলে, এটিই একমাত্র বিকল্প। আর অন্য কোনো পরিষেবা ইতিমধ্যে s selector ব্যবহার করলে, SendGrid আপনাকে নিজের পছন্দের selector বেছে নিতে দেয়। DKIM পরীক্ষক (selector s1) এবং SPF পরীক্ষক দিয়ে ফলাফল পরীক্ষা করুন। আপনার SPF রেকর্ডে অনেক এন্ট্রি থাকলে, SPF পরীক্ষক DNS lookup-এর সংখ্যাও গণনা করে।
লিংক, IP এবং রিপোর্টের বাকি অংশ
ক্লিক ট্র্যাকিং প্রতিটি লিংক পুনর্লিখন করে। আপনার লিংকের টেক্সটটি যদি নিজেই একটি URL হয়, তাহলে দৃশ্যমান ঠিকানা ও প্রকৃত গন্তব্য আর মেলে না এবং রিপোর্টের লিংক মিসম্যাচ পরীক্ষায় এটি শনাক্ত হবে। SendGrid-এর ডেলিভারেবিলিটি পেজেও একই সমস্যার কথা বলা হয়েছে। লিংকের টেক্সট হিসেবে শব্দ ব্যবহার করুন, অথবা লিংক ব্র্যান্ডিং সেট আপ করুন, যাতে ট্র্যাক করা লিংকগুলো আপনার নিজস্ব ডোমেইনের মাধ্যমে চলে। এই ডোমেইনটি আপনার From ডোমেইনের সঙ্গে মিলতে হবে।
Trial ও Essentials প্ল্যান শেয়ার করা IP পুল থেকে ইমেল পাঠায়। SendGrid উল্লেখ করেছে, আপনার রেপুটেশন বদলালে এসব IP কোনো নোটিশ ছাড়াই পরিবর্তিত হতে পারে। তাই এগুলোর কোনো একটি ব্লকলিস্টে থাকলে, সেই পুলের সবার জন্যই এটি উদ্বেগের বিষয়। ব্লকলিস্ট পরীক্ষক দিয়ে আপনি পরে আবার IP-টি পরীক্ষা করতে পারেন। রিভার্স DNS শুধু একটি ডেডিকেটেড IP থাকলেই কনফিগার করা যায়, যা Pro Email API ও Advanced Marketing Campaigns-এর সঙ্গে পাওয়া যায়।
SendGrid-এর ডকুমেন্টেশনে আরও পড়ুন
ইমেল পরীক্ষাwww.twilio.com ↗ডোমেইন অথেন্টিকেশনwww.twilio.com ↗List-Unsubscribewww.twilio.com ↗লিংক ব্র্যান্ডিংwww.twilio.com ↗প্রশ্ন
আমার ইমেলে "via sendgrid.net" কেন দেখা যায়?
SendGrid এখনো আপনার পাঠানোর ডোমেইন প্রমাণীকরণ করেনি। Settings > Sender Authentication-এ ডোমেইন প্রমাণীকরণ সেট আপ করুন। SendGrid-এর ডকুমেন্টেশন অনুযায়ী, এরপর ট্যাগটি আর দেখা যাবে না।
রিপোর্টে বলা হচ্ছে List-Unsubscribe অনুপস্থিত, কিন্তু আমি SendGrid ব্যবহার করি। কেন?
আপনি সম্ভবত Subscription Tracking বন্ধ রেখে API বা SMTP-এর মাধ্যমে পাঠাচ্ছেন। Settings > Tracking-এ এটি চালু করুন, অথবা headers অবজেক্টে দুটি হেডারই নিজে যোগ করুন।
এর জন্য আমি SendGrid-এর "Send Test Message" ব্যবহার করতে পারি?
হ্যাঁ, এটি টেস্ট ঠিকানায় পৌঁছায়। শুধু মনে রাখবেন, সাবজেক্টের শুরুতে Test - যোগ হয়ে আসে। আর সাবস্ক্রাইবাররা ঠিক যেভাবে হেডার পান, সেভাবে পরীক্ষা করতে এক পরিচিতির তালিকায় Single Send পাঠানো বেশি কাছাকাছি ফল দেয়।
Mail Send-এর বদলে আমি test-send API এন্ডপয়েন্ট ব্যবহার করতে পারি?
শুধু Dynamic Transactional Templates-এর জন্য, কারণ /v3/marketing/test/send_email কেবল এটিই গ্রহণ করে। এতে সর্বোচ্চ ১০টি ঠিকানা দেওয়া যায়। অন্য সবকিছু /v3/mail/send-এর মাধ্যমে যায়।
DKIM পরীক্ষকে কোন সিলেক্টর লিখব?
স্বয়ংক্রিয় নিরাপত্তা চালু থাকলে s1 ও s2 পরীক্ষা করুন। এটি বন্ধ থাকলে সিলেক্টর হলো m1। সেটআপের সময় আপনি কাস্টম সিলেক্টর বেছে নিয়ে থাকলে, সেটিই ব্যবহার করুন।