আপনি SMTP শব্দটি শুনে থাকতে পারেন, এবং কৌতূহলী হতে পারেন এটি কী। SMTP ইমেইল মেসেজ হ্যান্ডেল করার একটি সাধারণ পদ্ধতি।
আজ আমি ব্যাখ্যা করব SMTP কী, এবং SendGrid-এর মতো একটি SMTP প্রোভাইডার ব্যবহার করে আপনার ঠিকানা থেকে ইমেইল পাঠানো কীভাবে।
SMTP কী?
SMTP, বা Simple Mail Transfer Protocol, হলवह পদ্ধতি যার মাধ্যমে ইন্টারনেট সার্ভারগুলো ইমেইল মেসেজ পাঠায়। আপনি যখন আপনার Gmail একাউন্ট থেকে একটি ইমেইল পাঠান, উদাহরণস্বরূপ, আপনার মেইল ক্লায়েন্ট SMTP ব্যবহার করে সেটি সার্ভারে পাঠায়। সার্ভারটি তারপর SMTP ব্যবহার করে সেটি রিসিভিং সার্ভারে পাঠায়।
বেশ টেকনিক্যাল ডিটেইলে না গিয়ে, সবচেয়ে সহজ ভাবতে পারেন SMTP হল একটি ইমেইল সার্ভার।
SendGrid কী?
SendGrid হল একটি SMTP সার্ভিস প্রোভাইডার – আসলে, freeCodeCamp Quincy-এর সাপ্তাহিক নিউজলেটার পাঠাতে SendGrid ব্যবহার করে।
অনেক SMTP প্রোভাইডারের মতো, SendGrid তাদের মেইল সার্ভার ব্যবহার করে আপনার ইমেইল পাঠানোর সুযোগ দেয়। বড় পরিমাণে ইমেইল পাঠাতে এটি একটি চমৎকার অপশন, যেখানে ম্যানুয়ালি করা অনেক সময় এবং শ্রম নেবে।
SendGrid একাউন্ট তৈরি করার পদ্ধতি
SendGrid-এর সার্ভিস ব্যবহার করার প্রথম ধাপ হল আপনার একাউন্ট তৈরি করা। SendGrid ওয়েবসাইটে যান সাইন আপ করার জন্য। তারা একাধিক প্রাইসিং মডেল অফার করে, কিন্তু ফ্রি লেভেল কমপক্ষে এই টিউটোরিয়ালের জন্য পর্যাপ্ত।
যেহেতু আপনি আপনার ইমেইল লিস্ট বড় করবেন, তবে আপনাকে হয়তো উচ্চ সাবস্ক্রিপশন টিয়ারের থেকে অতিরিক্ত ফিচার দরকার পড়তে পারে।
সাইন ইন হলে, আপনাকে একটি ডিফল্ট ড্যাশবোর্ড ভিউ দেখাবে:

SendGrid-এ আপনার ডোমেন বা ইমেইল সেট আপ করা
সেই ড্যাশবোর্ড ভিউ থেকে, "Settings" সিলেক্ট করুন, তারপর ড্রপডাউন মেনু থেকে "Sender Authentication" বেছে নিন। Sender Authentication সেটিংসই হল যেখানে আপনি SendGrid-কে বলবেন কোন ইমেইল একাউন্টগুলো থেকে ইমেইল পাঠানোর অনুমতি দেবে।
এখানে দুটি পদ্ধতি আছে – আপনার যদি ইমেইলের জন্য কাস্টম ডোমেন থাকে, তবে আপনি Domain Authentication সেট আপ করতে পারেন। আপনি যদি পারসোনাল ইমেইল ঠিকানা ব্যবহার করেন, যেমন Gmail ঠিকানা, তবে আপনাকে Single Sender Authentication সেট আপ করতে হবে।
যে অপশনটি আপনার জন্য সেরা কাজ করে সেটি বেছে নিন, এবং SendGrid-এর প্রম্পট ফলো করে সেট আপ করুন। আপনার এন্ড রেজাল্ট এরকম দেখাবে:

SendGrid API দিয়ে ইমেইল পাঠানো
ইমেইল পাঠানোর আসল প্রক্রিয়া SendGrid API-এর মাধ্যমে করা হয়। কিন্তু API ব্যবহার করার আগে, আপনাকে একটি API কী সেট আপ করতে হবে।
আপনার ড্যাশবোর্ড ভিউ থেকে, "Settings" সিলেক্ট করুন, তারপর "API Keys" সিলেক্ট করুন। "Create API Key" বেছে নিন এবং আপনি কী পারমিশন চান সেটি সিলেক্ট করুন (আমি ফুল পারমিশন দিয়েছিলাম, শুধু সমস্যা এড়াতে)।
কী পাওয়ার পর, এটিকে কোথাও সেফ জায়গায় সেভ করুন কারণ আপনি আবার এক্সেস করতে পারবেন না।

এখন আপনার API কী আছে, আপনাকে /mail/send এন্ডপয়েন্ট ব্যবহার করার কোড সেট আপ করতে হবে। আপনি কোড ম্যানুয়ালি লিখতে পারেন, অথবা হেল্পার লাইব্রেরি যেমন SendGrid-এর Node.js প্যাকেজ ব্যবহার করতে পারেন।
Node.js প্যাকেজ ব্যবহার করলে, আপনি আপনার ইমেইলের জন্য ভ্যালুগুলো সেট করবেন যেন:
to: যে ঠিকানায় ইমেইল পাঠাতে হবে।from: যে ঠিকানা থেকে ইমেইল পাঠাতে হবে। এটি আপনার Sender Authentication-এ সেটিংসের সাথে মিলতে হবে।subject: আপনার ইমেইলের সাবজেক্ট।text: আপনার ইমেইলের কন্টেন্ট, যদি আপনি প্লেইন টেক্সট ইমেইল পাঠান।html: আপনার ইমেইলের কন্টেন্ট, যদি আপনি HTML ইমেইল পাঠান।
র AW API কল, অন্যান্য হেল্পার লাইব্রেরি, এবং প্রপার্টিগুলো ভিন্ন। আপনার নির্দিষ্ট পদ্ধতির ডকুমেন্টেশন রেফার করুন।
SendGrid-এ ডাইনামিক টেমপ্লেট ব্যবহার করা
একটি বিকল্প অপশন হিসেবে, আপনার API কলেই ইমেইল কন্টেন্ট পাঠানোর বদলে, আপনি একটি ডাইনামিক টেমপ্লেট ব্যবহার করতে পারেন কন্টেন্ট জেনারেট করতে।
একটি ডাইনামিক টেমপ্লেট আপনাকে ইমেইল পাঠানোর জন্য কন্টেন্ট সেট করতে দেয়, এবং স্পেসিফিক ডেটা ফিল্ড রিপ্লেস করার জন্য Handlebars ফাংশনালিটি অফার করে।
একটি ডাইনামিক টেমপ্লেট তৈরি করতে, আপনার ড্যাশবোর্ড থেকে "Email API" সিলেক্ট করুন এবং তারপর "Dynamic Templates"। তারপর "Create a Dynamic Template" ক্লিক করুন – আপনার টেমপ্লেট নিচে দেখাবে।
সেটিতে ক্লিক করুন, তারপর "Add Version" সিলেক্ট করুন টেমপ্লেট সিলেকশন খোলার জন্য। ব্লাঙ্ক টেমপ্লেট বেছে নিন, তারপর আপনি যে টাইপের এডিটর ব্যবহার করতে চান সেটি সিলেক্ট করুন (আমি কোড এডিটর ব্যবহার করি)।

আপনি আপনার ইমেইলের কন্টেন্ট লিখতে পারেন, এবং প্লেসহোল্ডার ব্যবহার করতে পারেন যেন {{name}} ডাইনামিক ডেটার জন্য। এই প্লেসহোল্ডারগুলো আপনার API কলের মাধ্যমে ভ্যালু পাবে যখন আপনি ইমেইল পাঠাবেন।
আপনি যদি দেখতে চান কীভাবে রেন্ডার হবে, তবে "Test Data" ট্যাব ব্যবহার করে প্লেসহোল্ডারদের জন্য স্যাম্পল ডেটা যোগ করতে পারেন।
SendGrid API দিয়ে Blocks/Bounces/Spams পাওয়া
অনডেলিভারেবল ইমেইল ট্র্যাক করা গুরুত্বপূর্ণ। SendGrid আপনাকে এটি ট্র্যাক করার টুলিং দেয়, এবং ডেটা তিনটি আলাদা ড্যাশবোর্ড ভিউ (বা API এন্ডপয়েন্ট, আপনি যদি প্রোগ্রাম্যাটিক্যালি পার্স করতে চান) এর মাধ্যমে উপলব্ধ।
Blockedইমেইলগুলো হল যেসব ইমেইল রিসিভিং ইমেইল প্রোভাইডারের পলিসি দ্বারা রিজেক্ট করা হয়েছে, যেন যুনিভার্সিটি ইমেইল যা এক্সটার্ন্যাল ট্রাফিক এক্সেপ্ট করে না, অথবা যেসব ইমেইল রিসল্ভ করা যায়নি (মেইল সার্ভার খুঁজে পাওয়া যায়নি)।Bouncedইমেইলগুলো হল যেসব ইমেইল সার্ভার দ্বারা রিসিভ করা হয়েছে কিন্তু রিটার্ন করা হয়েছে। এটি ঘটে যেসব কেসে ইমেইল সার্ভার আছে, কিন্তু নির্দিষ্ট ইউজার নেই, অথবা ইমেইল ইনবক্স ফুল।Spamইমেইলগুলো可以说是 সবচেয়ে গুরুত্বপূর্ণ মনিটর করার জন্য, কারণ এগুলো জেনারেট হয় যখন একজন ইউজার আপনার ইমেইল পায় এবং তাদের প্রোভাইডারকে রিপোর্ট করে যে আপনার ইমেইল স্প্যাম। এগুলো সরাসরি আপনার সেন্ডার রেপুটেশনকে প্রভাবিত করে, তাই আপনার পূর্বের ইমেইলগুলো স্প্যাম হিসেবে মার্ক করা কারো কাছে ইমেইল পাঠানো না হওয়া আবশ্যক।
অন্যান্য উদ্বেগ
আপনার সেন্ডার রেপুটেশন নিয়ে কথা বললে, SendGrid একটি টপ-লেভেল মেট্রিক অফার করে "Sender Reputation" নামে। এই মেট্রিক তাদের প্ল্যাটফর্মে আপনার অ্যাক্টিভিটির এগ्रीগেশন, এবং ইমেইল প্রোভাইডাররা আপনার ইমেইল কীভাবে হ্যান্ডেল করবে সেটির একটি সাধারণ ধারণা দেয়।
কম রেপুটেশন থাকলে আপনার ইমেইলগুলো অটোমেটিক্যালি স্প্যাম হিসেবে মার্ক হবে, অথবা আপনার IP ঠিকানাগুলো ব্লক হয়ে যাবে।
আপনি যদি SendGrid-এর ফ্রি টিয়ারে থাকেন, তবে আপনি শেয়ারড IP ঠিকানা ব্যবহার করবেন। এর মানে অন্যান্য কাস্টমারও সেই আইপি দিয়ে ইমেইল পাঠাবে, এবং তাদের অ্যাকশন আপনার রেপুটেশন নেগেটিভলি প্রভাবিত করতে পারে।
আপনি যদি বড় পরিমাণে ইমেইল পাঠাতে চান, তবে আমি পরামর্শ দিই ডেডিকেটেড IP ঠিকানা কেনার জন্য যাতে আপনার রেপুটেশন সুরক্ষিত থাকে।
উপসংহার
আশা করি এই আর্টিকেল আপনাকে SendGrid এবং তাদের অফার করা সার্ভিসগুলো সম্পর্কে আরও পরিচিত করে দিয়েছে। এখন আপনাকে আপনার নিজস্ব ইমেইল পাঠানো শুরু করার জন্য প্রস্তুত হওয়া উচিত।
আপনি যদি একটি ইমেইল নিউজলেটার শুরু করার পরিকল্পনা করেন, তবে আমি ইফেক্টিভ ইমেইল নিউজলেটার তৈরি করার সম্পর্কে একটি আর্টিকেল লিখেছি যা আপনাকে সাহায্য করতে পারে।