Action Mailer হলো Ruby on Rails এর একটি মডিউল যা ইমেইল পাঠানোর কাজকে সহজ ও সুসংগঠিত করে। এটি Rails অ্যাপ্লিকেশনের অংশ হিসেবে কাজ করে এবং ব্যবহারকারীদের ইমেইল পাঠানোর জন্য প্রয়োজনীয় সব ধরনের কনফিগারেশন, টেমপ্লেট এবং ডেলিভারি মেথড সরবরাহ করে।
Action Mailer এর মাধ্যমে আপনি সহজেই ইমেইল পাঠাতে, কাস্টমাইজড ইমেইল টেমপ্লেট তৈরি করতে এবং মেইল সার্ভারের সাথে ইন্টিগ্রেট করতে পারেন।
Action Mailer এর ধারণা
Action Mailer মূলত ব্যবহারকারীদের ইমেইল পাঠানোর জন্য Ruby কোডের মধ্যে মেইল সম্পর্কিত লজিক লিখতে সহায়তা করে। ইমেইল সেবা চালানোর জন্য Rails অন্তর্নিহিত SMTP (Simple Mail Transfer Protocol) প্রোটোকল ব্যবহার করে।
Action Mailer মডিউল ব্যবহার করে আপনি:
- HTML, plain text ইমেইল পাঠাতে পারবেন।
- ইমেইলের জন্য কাস্টম টেমপ্লেট তৈরি করতে পারবেন।
- অ্যাটাচমেন্ট যোগ করতে পারবেন।
Action Mailer এর মাধ্যমে ইমেইল পাঠানোর জন্য ধাপগুলো
১. Action Mailer ক্লাস তৈরি করা
প্রথমে, Action Mailer ক্লাস তৈরি করতে হবে যা ইমেইল পাঠানোর লজিক ধারণ করবে। Rails-এ একটি মেইলার ক্লাস তৈরি করতে rails generate কমান্ড ব্যবহার করা যায়।
rails generate mailer UserMailer
এটি app/mailers/user_mailer.rb ফাইলটি তৈরি করবে। এখানে UserMailer হলো মেইলার ক্লাসের নাম।
২. মেইলার ক্লাস কনফিগার করা
app/mailers/user_mailer.rb ফাইলটি কিছুটা এরকম দেখাবে:
class UserMailer < ApplicationMailer
default from: 'no-reply@example.com'
def welcome_email(user)
@user = user
@url = 'http://example.com/login'
mail(to: @user.email, subject: 'Welcome to My Awesome Site')
end
end
এখানে:
welcome_emailএকটি মেথড, যা নির্দিষ্ট ইউজারের জন্য একটি ওয়েলকাম ইমেইল পাঠাবে।@userহল সেই ব্যবহারকারী যার জন্য ইমেইল পাঠানো হবে।mailমেথডের মাধ্যমে ইমেইল পাঠানো হয়, যেখানেtoএবংsubjectএর মতো কনফিগারেশন দেয়া হয়।
৩. মেইল টেমপ্লেট তৈরি করা
Action Mailer ইমেইল পাঠানোর সময় HTML বা plain text টেমপ্লেট ব্যবহার করতে পারে। টেমপ্লেটগুলি app/views/user_mailer/ ফোল্ডারে তৈরি করতে হবে।
- HTML টেমপ্লেট তৈরি করতে:
# app/views/user_mailer/welcome_email.html.erb
<h1>Welcome, <%= @user.name %>!</h1>
<p>Thank you for signing up with our site.</p>
<p>To get started, please <a href="<%= @url %>">log in</a>.</p>
- Plain text টেমপ্লেট তৈরি করতে:
# app/views/user_mailer/welcome_email.text.erb
Welcome, <%= @user.name %>!
Thank you for signing up with our site.
To get started, please log in at <%= @url %>.
৪. মেইল পাঠানোর জন্য কল করা
আপনি যখন Action Mailer ক্লাস তৈরি করবেন এবং টেমপ্লেট কনফিগার করবেন, তখন সেই মেইল পাঠানোর জন্য কোডে কল করতে হবে। সাধারণত, এটি কন্ট্রোলারে করা হয়।
class UsersController < ApplicationController
def create
@user = User.new(user_params)
if @user.save
# Send welcome email
UserMailer.welcome_email(@user).deliver_now
redirect_to @user
else
render :new
end
end
end
এখানে deliver_now মেথডটি ইমেইলটি সিঙ্ক্রোনাসলি পাঠিয়ে দেয়। যদি আপনি অ্যাসিঙ্ক্রোনাসলি ইমেইল পাঠাতে চান, তবে deliver_later ব্যবহার করতে পারেন, যা ActiveJob ব্যবহার করে ইমেইলটি পিছিয়ে পাঠায়।
SMTP কনফিগারেশন
ইমেইল পাঠানোর জন্য SMTP (Simple Mail Transfer Protocol) কনফিগারেশন করতে হবে। এই কনফিগারেশনটি config/environments/development.rb বা config/environments/production.rb ফাইলে দিতে হবে, আপনার অ্যাপ্লিকেশনের পরিবেশ অনুযায়ী।
উদাহরণস্বরূপ, Gmail SMTP কনফিগারেশন:
# config/environments/development.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'gmail.com',
user_name: 'your_email@gmail.com',
password: 'your_password',
authentication: 'plain',
enable_starttls_auto: true
}
এখানে, delivery_method নির্ধারণ করা হয় :smtp হিসেবে, এবং অন্যান্য SMTP কনফিগারেশন যেমন SMTP সার্ভার, পোর্ট, ব্যবহারকারীর নাম এবং পাসওয়ার্ড দেওয়া হয়।
বিঃদ্রঃ: পাসওয়ার্ড এবং সুরক্ষিত কনফিগারেশনগুলো গোপন রাখা উচিত এবং কখনো কোডের মধ্যে সরাসরি স্টোর না করা ভালো।
ইমেইল পাঠানোর সময় অ্যাটাচমেন্ট যোগ করা
যদি আপনাকে ইমেইলের সাথে ফাইল বা অ্যাটাচমেন্ট পাঠাতে হয়, তাহলে আপনি attachments মেথড ব্যবহার করতে পারেন। এটি UserMailer ক্লাসে ব্যবহৃত হবে।
class UserMailer < ApplicationMailer
def welcome_email(user)
@user = user
@url = 'http://example.com/login'
mail(to: @user.email, subject: 'Welcome to My Awesome Site') do |format|
format.html { render 'welcome_email' }
format.text { render 'welcome_email' }
end
attachments['welcome.pdf'] = File.read('/path/to/file.pdf')
end
end
এখানে attachments['welcome.pdf'] এর মাধ্যমে একটি PDF ফাইল অ্যাটাচ করা হয়েছে।
সারমর্ম
Ruby on Rails-এ Action Mailer ব্যবহার করে আপনি সহজেই ইমেইল পাঠাতে পারেন। Action Mailer একটি শক্তিশালী উপকরণ যা মেইল পাঠানোর জন্য মডেল এবং ভিউ ব্যবহারের মাধ্যমে ইমেইল টেমপ্লেট তৈরি করতে সহায়তা করে। এর মাধ্যমে HTML, plain text ইমেইল পাঠানো, কাস্টম টেমপ্লেট ব্যবহার করা, এবং অ্যাটাচমেন্ট পাঠানো সম্ভব। SMTP কনফিগারেশন করে ইমেইল পাঠানো যায় এবং অ্যাসিঙ্ক্রোনাস ইমেইল পাঠানোর জন্য deliver_later মেথড ব্যবহার করা যায়।
Read more