CodeIgniter এ বিল্ট-ইন Email Class ব্যবহার করে সহজেই HTML Email পাঠানো এবং এর সাথে অ্যাটাচমেন্ট যোগ করা যায়। নিচে ধাপে ধাপে HTML Email পাঠানোর প্রক্রিয়া এবং অ্যাটাচমেন্ট ব্যবহারের পদ্ধতি ব্যাখ্যা করা হয়েছে।
Email Configuration সেটআপ
CodeIgniter-এ ইমেইল পাঠানোর জন্য SMTP বা ডিফল্ট PHP মেইল ফাংশন ব্যবহার করা যায়। SMTP সেটআপ করলে ইমেইল পাঠানো আরও নির্ভরযোগ্য হয়।
ধাপ ১: ইমেইল কনফিগারেশন
app/Config/Email.php ফাইলটি খুলুন এবং নিচের মতো কনফিগার করুন:
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Email extends BaseConfig
{
public $fromEmail = 'your_email@example.com'; // প্রেরকের ইমেইল
public $fromName = 'Your Name'; // প্রেরকের নাম
public $SMTPHost = 'smtp.example.com'; // SMTP সার্ভার
public $SMTPUser = 'your_email@example.com'; // SMTP ইউজারনেম
public $SMTPPass = 'your_password'; // SMTP পাসওয়ার্ড
public $SMTPPort = 587; // SMTP পোর্ট (587 সাধারণত TLS এর জন্য)
public $mailType = 'html'; // ইমেইল ফরম্যাট (html বা text)
}
ধাপ ২: লোড এবং কাস্টমাইজ
কোডের মাধ্যমে ইমেইল কনফিগার করতে পারেন:
$email = \Config\Services::email();
$config = [
'protocol' => 'smtp',
'SMTPHost' => 'smtp.example.com',
'SMTPUser' => 'your_email@example.com',
'SMTPPass' => 'your_password',
'SMTPPort' => 587,
'mailType' => 'html',
];
$email->initialize($config);
HTML Email পাঠানোর ধাপ
ধাপ ১: ইমেইল ভিউ তৈরি
app/Views/email_template.php নামে একটি HTML টেমপ্লেট তৈরি করুন:
<!DOCTYPE html>
<html>
<head>
<title>Welcome Email</title>
</head>
<body>
<h1>Hello, <?= $name ?>!</h1>
<p>Welcome to our service. We're glad to have you.</p>
</body>
</html>
ধাপ ২: কন্ট্রোলারে ইমেইল পাঠানো
app/Controllers/EmailController.php ফাইল তৈরি করুন এবং নিচের কোড যোগ করুন:
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
class EmailController extends Controller
{
public function sendEmail()
{
$email = \Config\Services::email();
// কনফিগারেশন সেটআপ
$email->setFrom('your_email@example.com', 'Your Name');
$email->setTo('recipient@example.com');
$email->setSubject('Welcome Email');
// HTML ভিউ লোড এবং সেট
$data = ['name' => 'John Doe'];
$message = view('email_template', $data);
$email->setMessage($message);
// ইমেইল পাঠানোর চেষ্টা
if ($email->send()) {
return "Email Sent Successfully!";
} else {
return $email->printDebugger(['headers', 'subject', 'body']);
}
}
}
Attachments সহ ইমেইল পাঠানো
ধাপ ১: অ্যাটাচমেন্ট যোগ করা
CodeIgniter এর attach মেথড ব্যবহার করে ইমেইলে ফাইল অ্যাটাচ করতে পারেন।
$email->attach(WRITEPATH . 'uploads/sample.pdf'); // ফাইল অ্যাটাচ করা
ধাপ ২: কন্ট্রোলারে ইমেইল পাঠানো
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
class EmailController extends Controller
{
public function sendEmailWithAttachment()
{
$email = \Config\Services::email();
// কনফিগারেশন সেটআপ
$email->setFrom('your_email@example.com', 'Your Name');
$email->setTo('recipient@example.com');
$email->setSubject('Document Attached');
$email->setMessage('<p>Please find the attached document.</p>');
// অ্যাটাচমেন্ট যোগ
$email->attach(WRITEPATH . 'uploads/sample.pdf');
// ইমেইল পাঠানোর চেষ্টা
if ($email->send()) {
return "Email with Attachment Sent Successfully!";
} else {
return $email->printDebugger(['headers', 'subject', 'body']);
}
}
}
Common Errors এবং সমাধান
Error 1: SMTP connection failed
- সমাধান: নিশ্চিত করুন SMTP সার্ভার, পোর্ট, ইউজারনেম এবং পাসওয়ার্ড সঠিকভাবে সেট করা হয়েছে।
Error 2: Email not sending
সমাধান: PHP এর
php.iniফাইলেopensslএক্সটেনশন সক্রিয় করুন:extension=openssl
Error 3: Attachment not found
- সমাধান: নিশ্চিত করুন যে অ্যাটাচ করা ফাইলের পথ সঠিক এবং ফাইলটি সার্ভারে বিদ্যমান।
CodeIgniter-এ HTML Email এবং Attachments পাঠানো খুবই সহজ এবং কার্যকর। এটি ইউজারের সাথে যোগাযোগ স্থাপন, ফাইল শেয়ারিং, বা নোটিফিকেশন পাঠানোর জন্য একটি শক্তিশালী সমাধান প্রদান করে। SMTP কনফিগারেশন এবং কাস্টমাইজড টেমপ্লেটের মাধ্যমে ইমেইল ফিচারকে আরও কার্যকরভাবে ব্যবহার করা যায়।
Read more