Hướng dẫn cài đặt PHPMailer: Tính năng gửi mail tự động

0
1010

Bạn đang sở hữu một website bán hàng online bạn mong muốn nhận được thông báo mỗi khi có đơn hàng? Hay bạn đang là một chủ của một blog có nhiều người theo dõi và họ muốn có được những thông báo khi bạn có bài viết mới thông qua email? Hay cách hiểu đơn giản là các bạn muốn nhận được những mail thông báo từ form liên hệ. Với ngôn ngữ lập trình PHP các bạn được hỗ trợ sử dụng hàm mail tuy nhiên điều này thường gặp phải những trục trặc nhất định. Do vậy bài viết hôm nay mình sẽ giới thiệu cho các bạn cách gửi mail trong PHP bằng PHPMailer. Đây là một thư viện rất cơ bản tuy nhiên không phải ai cũng biết. Các bạn hãy theo dõi bài viết dưới đây nếu đang gặp những vấn đề khó khăn trong việc gửi mail rong PHP.

Gửi mail tự động bằng PHPMailer

1. Tại sao cần đến PHPMailer?

PHP có hỗ trợ hàm gửi mail sẵn nhưng không hoàn toàn có thể gửi được cho tất cả mọi người. Các bạn sẽ gặp tình huống khi gửi mail là cái được cái không, mail của các bạn gửi đi có thể sẽ nằm trong mục spam hoặc sever của bạn đã bị chặn. Khi đó các bạn cần có những giải pháp để thay thế. Cách làm ở đây các bạn nên sử dụng một thư viện hỗ trỡ cho việc gửi mail trong PHP của bạn với cái tên PHPMailer. Bên cạnh đó các bạn có thể tham khảo thêm Pear Mail (ít phổ biến hơn nhưng cũng là một ý kiến để chúng ta tham khảo).

Những tính năng của PHPMailer

  • Các bạn có thể gửi mail thông qua giao thức SMTP
  • Các bạn hoàn toàn sử dụng mail cá nhân hoặc mail công ty để gửi thông tin cho khách hàng của bạn để làm tăng chất lượng mail của bạn.
  • Gửi mail với tốc độ nhanh ít lỗi và mail được chuyển vào thẳng inbox
  • Các bạn hoàn toàn sử dụng được cc, bcc và tệp đính kèm
  • Bên cạnh đó các bạn có thể tương tác lại với khách hàng một cách dễ dàng. Các bạn sẽ nhận được mail trong hộp thư đến của bạn.

Ngoài ra còn nhiều tính năng hơn thế nữa, các bạn có thể tìm hiểu trong lúc làm và cảm nhận về nó nhé.

2. Cách sử dụng PHPMailer version 6x

Việc đầu tiên các bạn cần làm là dowload thư viện PHPMailer 6.05 về máy của mình.

Import thư viện

Các bạn thực hiện import thư viện theo hướng dẫn dưới đây, các bạn lưu ý thay đổi đường dẫn mã nguồn mà các bạn đã lưu trước đó và cần đưa đoạn code này lên trên cùng của file.

Tiến hành gửi mail

3. Cách sử dụng PHPMailer version 5x

Tương tự như PHPMailer ver 6 các bạn cần download code của chúng về trước khi sử dụng.

Sau khi tải về hoàn tất các bạn tiến hành giải nén và nhận được nhiều file từ việc giải nén đó. Tuy vậy các bạn chỉ cần sử dụng 2 file ở đó là class.smtp.php và class.phpmailer.php còn lại những file khác các bạn hoàn toàn có thể không sử dụng đến, hoặc có thể xem thêm để hiểu rõ hơn. Sau đó các bạn copy file đó đưa vào dự án của mình và đưa chúng vào một file và đặt tên cho nó là sendmail.php (bạn hoàn toàn có thể sử dụng các tên khác). Nội dung file của các bạn sẽ hiển thị như sau:

 

Cách làm thật đơn giản phải không nào, các bạn không tốn quá nhiều thời gian cũng như công sức để thực hiện nó. Tiếp đó hãy tiến hành chạy thử file sendmail.php và mở hộp thư đến để kiểm tra mail của bạn có được gửi đi hay chưa nhé.

Cách tạo hàm để gửi mail với PHPMailer

Với cách làm trên các bạn hoàn toàn có thể gửi mail thành công rồi. Nhưng với trang web các bạn muốn gửi mail đi nhiều nơi hơn, ví dụ khi khách hàng liên hệ tới bạn mail cần được đưa đến quản trị viên để họ biết được. Đồng thời khi có đơn hàng mới các bạn cần gửi mail để xác nhận lại đơn hàng và có thông báo tới quản trị viên. Lúc này các bạn cần phải làm cho quá trình của mình trở nên gọn hơn (các bạn không thể ôm một mớ code để ném vào mọi file điều này gây ra tính không rõ ràng). Do vậy ở phần này các bạn cùng mình đưa chúng vào trong một hàm và trong hàm này các bạn có thể bổ sung thêm tính năng địa chỉ cc. Thực chất nếu các bạn đọc kỹ và làm thành thạo phần bên trên là các bạn hoàn toàn có thể thao tác thực hiện với phần bên dưới này. Tuy nhiên bài viết này với mục đích hướng dẫn các bạn cách gửi mail PHPMailer nên mình sẽ làm cẩn thận hơn. Các bạn cần tạo một file functions.php để đưa tất cả các hàm vào đó. Sau đó các bạn tạo những hàm sẵn như SenMail để tiến hành gửi mail chỉ có text không bao gồm file đính kèm và hàm SendMailAttchment để gửi những mail có kèm file. Các bạn có thể linh động để gộp chúng thành một hàm theo mong muốn. Dưới đây là nội dung file functions.php:

Phần AddReply ở hàm trên đã được cố định. Tuy nhiên các bạn có thể điều chỉnh nó tùy theo tính chất công việc của bạn.

Sau đó các bạn quay lại file sendmail.php được viết code như sau để kiểm tra lại.

Đối với hàm senMailAttachment các bạn cần sửa lại một số dòng sau:

Cuối cùng các bạn cần cấu hình những thông số phù hợp và chạy file sendMail.php để kiểm tra lại lần cuối.

4. Cấu hình tài khoản gmail để gửi mail

Google đã bổ sung thêm một số chức năng security để phục vụ cho những dịch vụ bên ngoài, tức là những dịch vụ gửi mail thông qua smtp của hệ thống google. Do đó các bạn cần thực hiện những bước sau để tiến hành gửi mail.

Không sử dụng đăng nhập 2 bước

Đăng nhập 2 bước tức là khi các bạn đăng nhập google sẽ gửi mã code về số điện thoại của bạn sau đó các bạn tiến hành xác nhận mã code và đăng nhập vào. Do đó các bạn cần phải tắt đi chức này trước khi tiến hành gửi.

Bật Allow less secure apps sang ON

Các bạn điều hướng đến và chuyển sang chế độ ON. Thông thường khi các bạn hoàn thiện bước này các bạn hoàn toàn có thể gửi mail tại localhost. Tuy nhiên các bạn sẽ gặp phải vấn đề khi upload lên hosting. Khi đó các bạn sẽ phải thực hiện bước thứ 3 sau đây:

Bật Display Unlock Captcha

Sau khi các bạn bật Display Unlock Captcha các bạn có thể gửi mail một cách đơn giản rồi đó. Nếu các bạn vẫn chưa gửi được các bạn cần xem lại hosting (các bạn kiểm tra xem nó có hỗ trợ gửi mail không, có một số hosting để gửi được mail các bạn cần phải theo domain nên mail sẽ bị loại trừ).

Kết

Trên đây là cách gửi mail bằng PHPMailer. Đây có lẽ là một thư viện rất cơ bản mà các bạn nên học tập và tìm hiểu vì nó rất hữu ích cho công việc của các bạn. Bài viết trên chỉ ở mức độ sơ khai do đó khi vận dụng các bạn cần linh hoạt hơn. Hy vọng với bài viết này các bạn sẽ có thêm tư liệu về gửi mail bằng PHPMailer.