Symfony-তে ইমেইল পাঠানোর জন্য আপনি SwiftMailer বা Symfony Mailer ব্যবহার করতে পারেন। Symfony ইমেইল পাঠানোর জন্য খুবই শক্তিশালী এবং নমনীয় টেমপ্লেট সিস্টেম সরবরাহ করে, যেটি Twig টেমপ্লেট ইঞ্জিন ব্যবহার করে ইমেইল কনটেন্ট তৈরি করতে সহায়ক।
এখানে Symfony Mailer এবং Twig টেমপ্লেট ব্যবহার করে ইমেইল টেমপ্লেট তৈরি করার প্রক্রিয়া বিস্তারিতভাবে বর্ণনা করা হলো।
Step 1: Symfony Mailer ইনস্টল করা
Symfony Mailer কম্পোনেন্টটি Symfony-তে ইমেইল পাঠানোর জন্য ব্যবহৃত হয়। এটি ইনস্টল করতে, আপনার Symfony প্রজেক্টে Mailer প্যাকেজটি ইনস্টল করতে হবে।
composer require symfony/mailer
এটি Mailer এবং ইমেইল সংক্রান্ত অন্যান্য প্রয়োজনীয় প্যাকেজ ইনস্টল করবে।
Step 2: Mailer কনফিগারেশন
Symfony Mailer কনফিগার করার জন্য, আপনাকে .env ফাইলে ইমেইল সার্ভারের সেটিংস যোগ করতে হবে। উদাহরণস্বরূপ, আপনি Gmail বা অন্য কোনো SMTP সার্ভার ব্যবহার করতে পারেন।
.env ফাইলে SMTP কনফিগারেশন যোগ করুন:
MAILER_DSN=smtp://username:password@smtp.gmail.com:587
এখানে:
- username: আপনার ইমেইল ঠিকানা
- password: আপনার ইমেইল পাসওয়ার্ড
- smtp.gmail.com: যদি আপনি Gmail ব্যবহার করেন, তবে SMTP সার্ভারের ঠিকানা।
Step 3: ইমেইল টেমপ্লেট তৈরি
Symfony ইমেইল টেমপ্লেট তৈরি করতে Twig ব্যবহার করে। Twig টেমপ্লেট ব্যবহার করে আপনি HTML বা Plain-text ইমেইল কন্টেন্ট তৈরি করতে পারবেন।
HTML ইমেইল টেমপ্লেট (Twig)
templates/emails ডিরেক্টরিতে একটি টেমপ্লেট তৈরি করুন, যেমন email.html.twig।
{# templates/emails/email.html.twig #}
<!DOCTYPE html>
<html>
<head>
<title>{{ subject }}</title>
</head>
<body>
<h1>{{ title }}</h1>
<p>{{ body }}</p>
</body>
</html>
এই টেমপ্লেটে আমরা subject, title, এবং body প্যারামিটার ব্যবহার করেছি।
Plain-text ইমেইল টেমপ্লেট (Twig)
এছাড়াও আপনি প্লেইন টেক্সট ইমেইল টেমপ্লেটও তৈরি করতে পারেন।
{# templates/emails/email.txt.twig #}
{{ title }}
{{ body }}
Step 4: ইমেইল পাঠানোর জন্য কন্ট্রোলার তৈরি করা
এখন, ইমেইল পাঠানোর জন্য একটি কন্ট্রোলার তৈরি করতে হবে, যা ইমেইল পাঠাবে এবং Twig টেমপ্লেটটি রেন্ডার করবে।
// src/Controller/EmailController.php
namespace App\Controller;
use Symfony\Component\Mime\Email;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class EmailController extends AbstractController
{
public function sendEmail(MailerInterface $mailer): Response
{
$email = (new Email())
->from('your-email@example.com')
->to('recipient@example.com')
->subject('Symfony Email Test')
->html($this->renderView('emails/email.html.twig', [
'subject' => 'Test Email',
'title' => 'Welcome to Symfony',
'body' => 'This is a test email sent using Symfony Mailer and Twig.',
]));
$mailer->send($email);
return new Response('Email sent successfully!');
}
}
ব্যাখ্যা:
- MailerInterface: এটি Symfony-তে ইমেইল পাঠানোর জন্য ব্যবহৃত ইন্টারফেস।
- renderView(): এই মেথডটি Twig টেমপ্লেট রেন্ডার করে, এবং প্যারামিটারগুলো (যেমন
subject,title,body) টেমপ্লেটে পাঠিয়ে দেয়। - send(): Mailer ইনস্ট্যান্সের মাধ্যমে ইমেইলটি পাঠানো হয়।
Step 5: রাউটিং কনফিগার করা
কন্ট্রোলার তৈরি করার পর, আপনাকে এটি একটি রাউটিং কনফিগারেশন দিতে হবে, যাতে ইমেইল পাঠানোর জন্য রাউট কল করা যায়।
# config/routes.yaml
send_email:
path: /send-email
controller: App\Controller\EmailController::sendEmail
এখানে, /send-email URL-এ ব্রাউজ করলে ইমেইলটি পাঠানো হবে।
Step 6: ইমেইল পাঠানো
এখন, যখন আপনি /send-email URL-এ যান, তখন কন্ট্রোলারটি ট্রিগার হবে এবং ইমেইল পাঠানো হবে।
সারাংশ
Symfony-তে ইমেইল টেমপ্লেট তৈরি করতে Twig এবং Mailer ব্যবহৃত হয়। প্রথমে ইমেইল সার্ভার কনফিগারেশন করতে হয়, তারপর Twig টেমপ্লেট তৈরি করে ইমেইল কনটেন্ট ডাইনামিকভাবে রেন্ডার করা হয়। Symfony-তে ইমেইল পাঠানোর জন্য একটি কন্ট্রোলার তৈরি করতে হয়, যা MailerInterface ব্যবহার করে ইমেইল পাঠানোর কাজ সম্পন্ন করে।
Read more