امروز : دوشنبه, 31 اردیبهشت 1397
اموزش Codeigniter جلسه دهم ارسال ایمیل
3/50 امتیاز از 12 رای
 تکنولوژی  |     |   163

معمولا در توسعه‌ی اپلیکیشن‌ها ارسال ایمیل به کاربران نیاز است. مثلا فرض کنید در فرم ثبت نام قصد دارید پس از موفق بودن عملیات عضو شدن کاربر جدید، یک ایمیل خوش‌آمد گویی برای وی ارسال کنید. در ادامه‌ی این آموزش با همراه باشید.ارسال ایمیل در پی‌اچ‌پی بسیار آسان است ولی این امر در فریم‌ورک Codeigniter آسان‌تر نیز می‌شود. فریم‌ورک یاد شده امکانات زیر را برای ارسال ایمیل در اختیار شما قرار می‌دهد.
  • پشتیبانی از چندین پروتکل - Mail, Sendmail و SMTP
  • رمزنگاری TLS و SSL برای SMTP
  • امکان ارسال ایمیل همزمان به چند نفر
  • پشتیبانی از CC و BCC
  • امکان ارسال ایمیل به صورت متنی یا HTML
  • امکان ضمیمه کردن فایل با ایمیل
  • شکستن متن در ایمیل
  • اولیت‌بندی ایمیل‌ها
  • حالت دسته‌ای BBC که امکان ارسال رایانامه به یک لیست بزرگ از آدرس ایمیل‌های مختلف را فراهم می‌کند.
  • ابزارهای رفع اشکال ایمیل
کلاس ایمیل در فریم‌ورک Codeigniter شامل توابع زیر است که هر کدام کار خاصی را در ارسال ایمیل‌ها انجام می‌دهند.
شمارهالگوی کلیپارامترهاخروجینوع خروجی
1from($from[, $name = ''[,$return_path = NULL]])

$from (string) − “From” آدرس ایمیل

$name (string) − “From” نام نمایشی

$return_path (string) − ایمیل اختیاری برای مواقعی که ایمیل ارسال شده به مقصد نمی‌رسد

CI_Email instance (method chaining)CI_Email
2reply_to($replyto[, $name = ''])

$replyto (string) − آدرس ایمیل برای ارسال پاسخ

$name (string) − نام نمایشی برای ایمیل پاسخ دهنده

CI_Email instance (method chaining)CI_Email
2to($to)

$to (mixed) − لیست ایمیل یا ایمیل‌های مقصد که باید آن‌ها را با کاما جدا کرد یا به صورت یک آرایه به این تابع ارسال کرد

CI_Email instance (method chaining)CI_Email
3cc($cc)

$cc (mixed) − لیست ایمیل یا ایمیل‌های که قصد داریم رایانامه را برای آن‌ها نیز ارسال کنیم که باید آن‌ها را با کاما جدا کرد یا به صورت یک آرایه به این تابع ارسال کرد

CI_Email instance (method chaining)CI_Email
4bcc($bcc[, $limit = ''])

$bcc (mixed) − لیست ایمیل‌هایی که باید با کاما از یکدیگر جدا شده یا به صورت آرایه به این تابع ارسال شوند

$limit (int) − حداکثر تعداد ایمیل‌هایی که در هر بار ارسال گروهی باید فرستاد شود

CI_Email instance (method chaining)CI_Email
5subject($subject)

$subject (string) − موضوع ایمیل

CI_Email instance (method chaining)CI_Email
6message($body)

$body (string) − متن اصلی ایمیل

CI_Email instance (method chaining)CI_Email
7set_alt_message($str)

$str (string) − مشابه متن اصلی ایمیل

CI_Email instance (method chaining)CI_Email
8set_header($header, $value)

$header (string) − نام هدر

$value (string) − مقدار هدر

CI_Email instance (method chaining)CI_Email
9clear([$clear_attachments = FALSE])

$clear_attachments(bool) – تعیین اینکه ضمیمه ها پاک شوند یا خیر

CI_Email instance (method chaining)CI_Email
10send([$auto_clear = TRUE])

$auto_clear (bool) − تعیین اینکه داده های مرتبط با ایمیل به صورت خودکار پاک شوند یا خیر

CI_Email instance (method chaining)CI_Email
11attach($filename[, $disposition = ''[, $newname = NULL[, $mime = '']]])

$filename (string) − نام فایل

$disposition (string) − وضع فایل ضمیمه در ایمیل. البته بسیاری از ابزارهای مدیریت ایمیل خود از وضع مخصوصی استفاده می‌کنند

$newname (string) − نام سفارشی برای فایل برای استفاده در ایمیل

$mime (string) − MIME نوع (برای داده‌هایی که میانگین دارند مفید است)

CI_Email instance (method chaining)CI_Email
12attachment_cid($filename)

$filename (string) − نام فایل ضمیمه موجود

Attachment Content-ID or FALSE if not foundstring

ارسال ایمیل

برای ارسال ایمیل در فریم‌ورک codeigniter ابتدا باید کتابخانه‌ی مربوطه را بارگذاری کنیم. بدین منظور باید از کدی مثل کد زیر بهره ببریم.
$this->load->library('email'); 
پس از لود کردن کتابخانه‌ی ایمیل، به راحتی می‌توان از توابع فوق استفاده کرد و مقادیر مورد نیاز را در آن‌ها قرار داد تا ایمیل مورد نظر ارسال شود. با استفاده از تابع ()from می‌توان تعیین کرد که فرستنده‌ی ایمیل چه کسی است و با تابع ()to نیز مخاطب یا مخاطبانی که قصد ارسال ایمیل به آن‌ها را داریم را تعیین می‌کنیم. علاوه بر این با استفاده از دو تابع ()subject و ()message به ترتیب موضوع و متن اصلی ایمیل را تعیین می‌کنیم. به مثال زیر توجه کنید.
$this->email->from('[email protected]', 'Your Name'); $this->email->to('[email protected]'); $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 = "[email protected]"; $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"> CodeIgniter Email Example  <>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(); ?> 

برچسب ها :  

نظر خود را به اشتراک بگذارید