Ruby on Rails এ Email Templates এবং Layouts ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশন থেকে পাঠানো ইমেইলগুলোর কন্টেন্ট কাস্টমাইজ করতে পারেন। ইমেইল টেমপ্লেটগুলি হল সেই ফাইলগুলো যা নির্দিষ্ট ফরম্যাটে ইমেইল কন্টেন্ট তৈরি করে, এবং ইমেইল লেআউটগুলি ইমেইলের সাধারণ কাঠামো নির্ধারণ করে।
এটি সাধারণত ব্যবহৃত হয় যখন আপনি একটি বা একাধিক ইমেইল পাঠাতে চান, যেমন:
- ব্যবহারকারীর রেজিস্ট্রেশন নিশ্চিতকরণ ইমেইল
- পাসওয়ার্ড রিসেট ইমেইল
- নোটিফিকেশন ইমেইল
Email Templates কী?
Email Templates হল সেই ফাইলগুলো যেগুলিতে ইমেইল এর কন্টেন্ট বা কনটেন্ট স্ট্রাকচার ডিফাইন করা হয়। Rails এ ইমেইল টেমপ্লেট সাধারণত app/views ডিরেক্টরির মধ্যে থাকা মেইল কন্ট্রোলারের ভিউ ফাইল হিসেবে তৈরি করা হয়।
Rails এ ইমেইল টেমপ্লেটগুলো সাধারণত দুটি ফরম্যাটে তৈরি হয়:
- HTML ইমেইল
- Plain Text ইমেইল
উদাহরণ:
ধরা যাক, আপনি একটি কন্ট্রোলার তৈরি করেছেন UserMailer নামে, যেটি রেজিস্ট্রেশন নিশ্চিতকরণের ইমেইল পাঠাবে। আপনাকে দুটি আলাদা ভিউ (HTML এবং Plain Text) তৈরি করতে হবে।
১. Mailer Class তৈরি করা
class UserMailer < ApplicationMailer
def welcome_email(user)
@user = user
mail(to: @user.email, subject: 'Welcome to Our Platform')
end
end
এখানে, welcome_email মেথডটি User মডেলের ইমেইল অ্যাড্রেসে একটি ওয়েলকাম ইমেইল পাঠাবে।
২. Email Templates (HTML এবং Text) তৈরি করা
- HTML Template (welcome_email.html.erb)
<h1>Welcome, <%= @user.name %>!</h1>
<p>Thank you for signing up with us. We're excited to have you on board.</p>
- Plain Text Template (welcome_email.text.erb)
Welcome, <%= @user.name %>!
Thank you for signing up with us. We're excited to have you on board.
এখানে, .html.erb ফাইলটি HTML ফরম্যাটে ইমেইল কন্টেন্ট তৈরি করবে, এবং .text.erb ফাইলটি প্লেইন টেক্সট ফরম্যাটে ইমেইল পাঠাবে।
Layouts কী?
Layouts হল সেই ফাইলগুলো যা ইমেইলের কাঠামো বা সান্দ্রতা তৈরি করে, অর্থাৎ, ইমেইলের হেডার, ফুটার, বা অন্যান্য নেভিগেশনাল উপাদান। আপনি যদি একই ধরনের ইমেইল বিভিন্ন সময়ে পাঠান, তবে আপনি একটিমাত্র লেআউট ব্যবহার করে সমস্ত ইমেইল কন্টেন্ট একে অপরের মতো দেখতে তৈরি করতে পারেন।
Rails এ ইমেইল লেআউট সাধারণত app/views/layouts ডিরেক্টরিতে থাকে এবং আপনি একাধিক লেআউট তৈরি করতে পারেন, যেমন mailer.html.erb বা mailer.text.erb।
উদাহরণ:
ধরা যাক, আমরা একটি সাধারণ ইমেইল লেআউট তৈরি করতে চাই যেটি সমস্ত ইমেইলে হেডার এবং ফুটার থাকবে।
- Layout (mailer.html.erb)
<html>
<body>
<table width="100%" cellspacing="0" cellpadding="10">
<tr>
<td style="background-color: #f4f4f4;">
<h1>Our Platform</h1>
</td>
</tr>
<tr>
<td>
<%= yield %> <!-- ইমেইল কন্টেন্ট এখানে যোগ হবে -->
</td>
</tr>
<tr>
<td style="background-color: #f4f4f4;">
<p>Thank you for being a part of our platform.</p>
</td>
</tr>
</table>
</body>
</html>
এখানে, yield স্টেটমেন্টটি ইমেইল কন্টেন্ট জায়গা নির্ধারণ করে, যা welcome_email.html.erb থেকে নেওয়া হবে।
২. Mailer Class এ Layout ব্যবহার
আপনি যদি একটি সাধারণ লেআউট ব্যবহার করতে চান, তবে তা ApplicationMailer ক্লাসে layout প্যারামিটার দিয়ে নির্দিষ্ট করতে পারেন।
class ApplicationMailer < ActionMailer::Base
default from: 'no-reply@example.com'
layout 'mailer' # এটি "mailer.html.erb" লেআউটটি ব্যবহার করবে
end
এখানে, layout 'mailer' নির্দেশ করে যে, সমস্ত ইমেইল mailer.html.erb লেআউটটি ব্যবহার করবে।
ইমেইল টেমপ্লেট এবং লেআউটের সুবিধা
- কাস্টমাইজেশন: ইমেইল টেমপ্লেট এবং লেআউট ব্যবহারের মাধ্যমে আপনি ইমেইলের কন্টেন্ট এবং কাঠামো কাস্টমাইজ করতে পারেন। প্রতিটি ইমেইলের জন্য একটি আলাদা টেমপ্লেট এবং একক লেআউট ব্যবহার করে অ্যাপ্লিকেশনের ইমেইল কন্টেন্ট একটি সাধারণ নকশায় পাওয়া যাবে।
- অ্যাপ্লিকেশন কনসিসটেন্সি: ইমেইল টেমপ্লেট এবং লেআউটগুলো অ্যাপ্লিকেশনটির এক ধরনের ইউনিফর্ম লুক এবং ফিল বজায় রাখে। একাধিক ইমেইল পাঠানোর সময় এটি একজাতীয় ডিজাইন এবং ফরম্যাট প্রদান করে।
- ডাইনামিক কন্টেন্ট: ইমেইল টেমপ্লেটে ব্যবহারকারী বা অন্যান্য ডাইনামিক কন্টেন্ট ইনজেক্ট করা সহজ। যেমন, ব্যবহারকারীর নাম, ইমেইল, প্রোফাইল লিঙ্ক ইত্যাদি।
- মাল্টিপল ফরম্যাট: আপনি সহজেই HTML এবং Plain Text ইমেইল উভয় ফরম্যাটে কন্টেন্ট তৈরি করতে পারেন, যেগুলি বিভিন্ন ইমেইল ক্লায়েন্টে সঠিকভাবে দেখা যায়।
সারমর্ম
Ruby on Rails এ Email Templates এবং Layouts ব্যবহার করে আপনি আপনার ইমেইল কন্টেন্টকে সুন্দর এবং প্রফেশনালভাবে কাস্টমাইজ করতে পারেন। ইমেইল টেমপ্লেটগুলো ইমেইলের কন্টেন্ট তৈরি করে, আর লেআউটগুলো ইমেইলের কাঠামো নির্ধারণ করে। Rails এ ইমেইল টেমপ্লেট এবং লেআউট ব্যবহার করা খুবই সুবিধাজনক, কারণ এটি ইমেইল কন্টেন্টের পুনঃব্যবহারযোগ্যতা, কাস্টমাইজেশন এবং অ্যাপ্লিকেশনের সামঞ্জস্য বজায় রাখতে সাহায্য করে।
Read more