Top Ad unit 728 × 90

Gửi email trong Codeigniter bằng PhpMailer

Gửi mail là một phần không thể thiếu trong mỗi ứng dụng web và được sử dụng rất nhiều trong các framwork khác nhau và trên các trang web. Đối với CI cũng không ngoại lệ nên cũng đã được các nhà phát triển tích hợp thư viện gửi email vào bên trong đó và để sử dụng được thư viện của CI thì mình cũng đã có bài hướng dẫn chi tiết các bước để có thể gửi email thông qua thư viện của nó rồi các bạn tham khảo bài Gửi email trong Codeigniter. Trong bài này mình sẽ giới thiệu cho các bạn tích hợp thư viện của bên thứ 3 vào trong CI. Chúng ta bắt đầu nhé!




Thư viện của CI mình cũng sử dụng nhưng sau thời gian sử dụng thì thấy nó phát sinh ra lỗi mà rất khó để debug vì ngôn ngữ PHP không có trình gỡ lỗi nên không tìm được lỗi được phát sinh từ đâu. Và một thời gian mình có lần trên mạng thì mình đã quyết định tích hợp thư viện của bên thứ 3 vào bên trong CI. Thư viện này cũng được mình sử dụng khi mình mới bắt đầu đi vào học lập trình ngôn ngữ PHP và cũng được rất nhiều lập trình viên sử dụng và thư viện đó là đây: PHPMailer.

Mình sẽ giới thiệu qua về thư viện này cho bạn nào chưa biết thì có thể tham khảo nhé!

PHPMailer là một thư viện hỗ trợ bạn trong việc gửi email được viết bằng ngôn ngữ PHP. Là một công cụ cực mạnh để các bạn có thể gửi mail từ web của mình. Thư viện này có những tính năng sau:
  • Gửi mail thông qua giao thức SMTP
  • Có thể dễ dàng dùng địa chỉ email cá nhân hoặc email công ty của bạn để gửi đi làm tăng độ uy tín cho mail mà bạn gửi đi.
  • Gửi mail nhanh chóng ít phát sinh lỗi, đặc biệt là mail được chuyển thẳng đến inbox không vào spam
  • Có thể thêm cc, bcc, đính kèm file.
  • Có thể tương tác hai chiều tức là khi khách hàng reply mail bạn sẽ nhận được mail trong hộp thư đến của bạn.
  • Và rất nhiều chức năng khác
Vậy là mình đã giới thiệu qua về thư viện đó và bây giờ chúng ta đi vào setup nó lên Codeigniter nhé!




Để cài đặt nó các bạn thực hiện các bước sau nhé!

Bước 1: Tải bộ code đã được tạo sẵn


https://github.com/ivantcholakov/codeigniter-phpmailer/archive/master.zip



Sau khi hoàn tất việc tải code thì chúng ta chuyển sang bước số 2.

Bước 2: Giải nén tệp tin mà các bạn vừa tải và mở tệp đó ra sẽ thấy cấu trúc của nó như sau:

gửi email trong codeigniter bằng phpmailer - thegioitrithuc.me
Các bạn copy các file bên trong các thư mục đó và dán vào các thư mục cùng tên trong application của dự án mà các bạn đã làm.

Bước 3: Cấu hình gửi email.
Tiếp tục chúng ta đi config để gửi email nhé!

Các bạn vào dự án mà các bạn đã dán các file vừa rồi và mở file email.php trong thư mục config lên

<?php defined('BASEPATH') OR exit('No direct script access allowed.');
$config['useragent']        = 'PHPMailer';              // Mail engine switcher: 'CodeIgniter' or 'PHPMailer'
$config['protocol']         = 'mail';                   // 'mail', 'sendmail', or 'smtp'
$config['mailpath']         = '/usr/sbin/sendmail';
$config['smtp_host']        = '';
$config['smtp_user']        = '';
$config['smtp_pass']        = '';
$config['smtp_port']        = ;
$config['smtp_timeout']     = 30;                       // (in seconds)
$config['smtp_crypto']      = '';                       // '' or 'tls' or 'ssl'
$config['smtp_debug']       = 0;                        // PHPMailer's SMTP debug info level: 0 = off, 1 = commands, 2 = commands and data, 3 = as 2 plus connection status, 4 = low level data output.
$config['smtp_auto_tls']    = true;                     // Whether to enable TLS encryption automatically if a server supports it, even if `smtp_crypto` is not set to 'tls'.
$config['smtp_conn_options'] = array();                 // SMTP connection options, an array passed to the function stream_context_create() when connecting via SMTP.
$config['wordwrap']         = true;
$config['wrapchars']        = 76;
$config['mailtype']         = 'html';                   // 'text' or 'html'
$config['charset']          = null;                     // 'UTF-8', 'ISO-8859-15', ...; NULL (preferable) means config_item('charset'), i.e. the character set of the site.
$config['validate']         = true;
$config['priority']         = 3;                        // 1, 2, 3, 4, 5; on PHPMailer useragent NULL is a possible option, it means that X-priority header is not set at all, see https://github.com/PHPMailer/PHPMailer/issues/449
$config['crlf']             = "\n";                     // "\r\n" or "\n" or "\r"
$config['newline']          = "\n";                     // "\r\n" or "\n" or "\r"
$config['bcc_batch_mode']   = false;
$config['bcc_batch_size']   = 200;
$config['encoding']         = '8bit';                   // The body encoding. For CodeIgniter: '8bit' or '7bit'. For PHPMailer: '8bit', '7bit', 'binary', 'base64', or 'quoted-printable'.
// DKIM Signing
// See https://yomotherboard.com/how-to-setup-email-server-dkim-keys/
// See http://stackoverflow.com/questions/24463425/send-mail-in-phpmailer-using-dkim-keys
// See https://github.com/PHPMailer/PHPMailer/blob/v5.2.14/test/phpmailerTest.php#L1708
$config['dkim_domain']      = '';                       // DKIM signing domain name, for exmple 'example.com'.
$config['dkim_private']     = '';                       // DKIM private key file path.
$config['dkim_selector']    = '';                       // DKIM selector.
$config['dkim_passphrase']  = '';                       // DKIM passphrase, used if your key is encrypted.
$config['dkim_identity']    = '';                      
Các cấu hình trong file email.php là từ các bạn cấu hình nhé! Ở đây mình không hướng dẫn các bạn cách cấu hình nó như thế nào nhé! Bây giờ chúng ta chuyển sang bước cuối cùng.




Bước 4: Thực hiện gửi email demo
Các bạn mở file bất kỳ nào mà các bạn muốn thực hiện gửi email và copy đoạn code sau rồi dán vào file mà bạn muốn:

public function myController(){
      $this->load->library('email');
      $this->email->from('your email','Your name');
      $this->email->to('email mà bạn muốn gửi');
      $this->email->subject('this is my subject');
      $this->email->message('this is my message');
      $this->email->send();
}
Vậy là mình đã hướng dẫn các bạn cách gửi mail bằng thư viện PHPMailer trong Codeigniter hoàn tất. Nếu các bạn thấy hay hãy share cho nhiều người cùng học nhé!


Cảm ơn các bạn! Chúc các bạn thành công!
Gửi email trong Codeigniter bằng PhpMailer Reviewed by Thế Giới Tri Thức on tháng 3 19, 2018 Rating: 5

Không có nhận xét nào:

All Rights Reserved by THẾ GIỚI TRI THỨC © 2018
Thiết kế bởi: THẾ GIỚI TRI THỨC

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.