- پنجشنبه 23 مهر 1405 ساعت 20:00
- 3.1.9
- کامل شده
- منقضی شده
Email Class ارسال ایمیل از طریق Mail، Sendmail یا SMTP را مدیریت میکند. به کمک این کلاس میتوانید فرستنده، گیرندهها، عنوان، متن، نسخه HTML، پیوست و Encoding را تنظیم کنید و خطاهای ارسال را بررسی کنید.
ساختار و API اصلی
پس از بارگذاری کتابخانه، initialize() تنظیمات را اعمال میکند. from() فرستنده را مشخص میکند، to() و cc() و bcc() گیرندگان را تعیین میکنند، subject() و message() محتوا را میسازند، attach() فایل پیوست میکند و send() ارسال را انجام میدهد. برای بررسی خطا از print_debugger() استفاده کنید.
نمونه استفاده
$this->load->library('email');
$config = array('protocol' => 'smtp', 'smtp_host' => 'smtp.example.org', 'smtp_port' => 587, 'smtp_crypto' => 'tls');
$this->email->initialize($config);
$this->email->from('noreply@example.org', 'Store');
$this->email->to($customerEmail);
$this->email->subject('وضعیت سفارش');
$this->email->message('سفارش شما ثبت شد.');
if (!$this->email->send()) { log_message('error', $this->email->print_debugger()); }نکته مهم
برای ارسال انبوه یا ارسالهای زمانبر، ایمیل را به صف بسپارید. نتیجه send فقط وضعیت ارسال از سمت کتابخانه را نشان میدهد و تحویل نهایی به صندوق مقصد را تضمین نمیکند.
مطالعه مرتبط
برای ادامه مطالعه، MVC، کوئری، ترنزکشن را ببینید.
متدهای ارسال ایمیل
| متد یا مفهوم | کاربرد |
|---|---|
initialize($config) | اعمال تنظیمات SMTP یا Mail. |
from() و to() | تعیین فرستنده و گیرنده. |
cc() و bcc() | افزودن گیرنده رونوشت. |
subject() و message() | تعیین عنوان و محتوای پیام. |
attach() | افزودن فایل پیوست. |
send() | ارسال پیام و دریافت نتیجه. |
clear() و print_debugger() | پاک کردن وضعیت پیام یا مشاهده خطاها. |
نحوه استفاده و عیبیابی
در یک Controller ابتدا Library را با Loader بارگذاری کنید، سپس تنظیمات محیطی را به آن بدهید و عملیات را اجرا کنید. نتیجه را از مسیر مشخص دریافت کنید و در صورت شکست، پیام خطا را در Log ثبت کنید. اگر Library به Driver خارجی وابسته است، وجود افزونه PHP یا برنامه موردنیاز را روی سرور بررسی کنید.
در محیط توسعه، مسیر موفق و مسیر خطا را جداگانه آزمایش کنید. ورودی خالی، مقدار نامعتبر، فایل بزرگ، Timeout سرویس خارجی و نبود مجوز نوشتن از سناریوهایی هستند که باید بررسی شوند. منابعی مانند اتصال شبکه و فایلهای موقت را پس از پایان عملیات آزاد کنید.
در بازبینی کد، ترتیب و نتیجه متدهای initialize($config)، from() و to()، cc() و bcc()، subject() و message() را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.