معمولا در توسعهی اپلیکیشنها ارسال ایمیل به کاربران نیاز است. مثلا فرض کنید در فرم ثبت نام قصد دارید پس از موفق بودن عملیات عضو شدن کاربر جدید، یک ایمیل خوشآمد گویی برای وی ارسال کنید. در ادامهی این آموزش با زومیت همراه باشید.
ارسال ایمیل در پیاچپی بسیار آسان است ولی این امر در فریمورک Codeigniter آسانتر نیز میشود. فریمورک یاد شده امکانات زیر را برای ارسال ایمیل در اختیار شما قرار میدهد.
- پشتیبانی از چندین پروتکل - Mail, Sendmail و SMTP
- رمزنگاری TLS و SSL برای SMTP
- امکان ارسال ایمیل همزمان به چند نفر
- پشتیبانی از CC و BCC
- امکان ارسال ایمیل به صورت متنی یا HTML
- امکان ضمیمه کردن فایل با ایمیل
- شکستن متن در ایمیل
- اولیتبندی ایمیلها
- حالت دستهای BBC که امکان ارسال رایانامه به یک لیست بزرگ از آدرس ایمیلهای مختلف را فراهم میکند.
- ابزارهای رفع اشکال ایمیل
کلاس ایمیل در فریمورک Codeigniter شامل توابع زیر است که هر کدام کار خاصی را در ارسال ایمیلها انجام میدهند.
ارسال ایمیل
برای ارسال ایمیل در فریمورک codeigniter ابتدا باید کتابخانهی مربوطه را بارگذاری کنیم. بدین منظور باید از کدی مثل کد زیر بهره ببریم.
$this->load->library('email');
پس از لود کردن کتابخانهی ایمیل، به راحتی میتوان از توابع فوق استفاده کرد و مقادیر مورد نیاز را در آنها قرار داد تا ایمیل مورد نظر ارسال شود. با استفاده از تابع ()from میتوان تعیین کرد که فرستندهی ایمیل چه کسی است و با تابع ()to نیز مخاطب یا مخاطبانی که قصد ارسال ایمیل به آنها را داریم را تعیین میکنیم. علاوه بر این با استفاده از دو تابع ()subject و ()message به ترتیب موضوع و متن اصلی ایمیل را تعیین میکنیم. به مثال زیر توجه کنید.
$this->email->from('your@example.com', 'Your Name');$this->email->to('someone@example.com');$this->email->subject('Email Test');$this->email->message('Testing the email class.');
پس از تنظیم مقادیر مورد نیاز برای ارسال ایمیل، با استفاده از تابع ()send اقدام به ارسال ایمیل میکنیم.
$this->email->send();
مثال:
ابتدا نرمافزار سرور مجازی زمپ را مثل همیشه اجرا کرده و دو سرور آپاچی و MySql را در حالت فعال قرار دهید.
یک پروژه جدید Codeigniter همانند پروژههایی که در جلسات قبل ایجاد میکردید ایجاد کنید. بدین منظور ما یک پوشه در htdocs نرمافزار زمپ ساخته و نام آن را code-emial تعیین کردهایم. سپس همانند آنچه در آموزشهای جلسات اولیه توضیح دادیم، فریمورک را در این پوشه پیکربندی و آمادهی استفاده میکنیم.
در مسیر application/controller یک فایل کنترلر جدید به نام Email_controller.php بسازید و کد زیر را در آن قرار دهید:
php class Email_controller extends CI_Controller { function __construct() { parent::__construct(); $this->load->library('session'); $this->load->helper('form'); } public function index() { $this->load->helper('form'); $this->load->view('email_form'); } public function send_mail() { $from_email = "your@example.com"; $to_email = $this->input->post('email'); //Load email library $this->load->library('email'); $this->email->from($from_email, 'Your Name'); $this->email->to($to_email); $this->email->subject('Email Test'); $this->email->message('Testing the email class.'); //Send mail if($this->email->send()) $this->session->set_flashdata("email_sent","Email sent successfully."); else $this->session->set_flashdata("email_sent","Error in sending Email."); $this->load->view('email_form'); } } ?>
در کد بالا در متد ()sendـmail ابتدا مقادیری چون آدرس فرستنده، گیرنده، موضوع و متن ایمیل را تعیین کردهایم. سپس با استفاده از دستور شرطی if و تابع ()send از ارسال شدن یا نشدن ایمیل اطمینان حاصی میکنیم و سپس با استفاده از تابع set_flashdata پیام مورد نظر را در هر یک از شرایط به کاربر نمایش میدهیم.
حال باید فایل ویو یا نمای مربوطه را نیز ایجاد کنیم. بدین منظور در مسیر application/views یک فایل جدید به نام email_form.php ایجاد کرده و کدهای زیر را در آن قرار دهید.
lang = "en"> charset = "utf-8"> </span><span class="pln">CodeIgniter Email Example</span><span class="tag"> php echo $this->session->flashdata('email_sent'); echo form_open('/Email_controller/send_mail'); ?> type = "email" name = "email" required /> type = "submit" value = "SEND MAIL"> php echo form_close(); ?>
در نهایت در مسیر application/config فایل routes.php را باز کرده و سپس خط زیر را به آخر آن اضافه کنید.
$route['email'] = 'Email_Controller';
با مراجعه به لینک اپلیکیشن ساخته شده، میتوانیم ایمیل مورد نظرمان را توسط فریمورک Codeigniter ارسال کنیم. از آنجا که ما این مثال را در پوشهی codei-email ایجاد کردهایم، بنابراین برای اجرای آن باید به آدرس زیر در مرورگر وب خود مراجعه کنیم.
http://127.0.0.1/index.php/email
همانطور که مشاهده کردید ارسال ایمیل در فریمورک مورد بحث بسیار آسان بوده و بنا به نیاز خود میتوانید هر نوع ایمیلی را با ِآن ارسال کنید. با توجه به توابعی که در این مطلب آنها را به شما توضیح دادیم، سعی کنید برای خود پروژهای تعریف کنید که در آن یک ایمیل اچتیامال با محتوای دلخواه و نیز فایل ضمیمه را برای خود و چند نفر دیگر ارسال کنید.
اگر سوال یا پیشنهادی در مورد مباحث ارایه شده در این جلسه دارید، لطفا از طریق بخش دیدگاهها آن را با زومیت و سایر کاربران به اشتراک بگذارید.
نظرات