Hướng dẫn dùng mail yo trong PHP

PHP mail() function có thể được dùng để gửi email sử dụng PHP. Nó thuận tiện nếu bạn muốn tạo form liên hệ trên website của bạn. Với PHP mail(), emails có thể được gửi sử dụng script PHP đơn giản. Trong bài hướng dẫn này bạn sẽ học cách gửi emails sử dụng PHP và kiểm tra tính năng PHP mail() functions

Trước khi bắt đầu bạn cần chuẩn bị:

  • Truy cập vào tài khoản hosting
  • PHP mail() function được kích hoạt

Bước 1 — Tạo một file PHP mới

Đầu tiên, bạn cần tạo file PHP trong tài khoản hosting. File PHP của bạn có thể được truy cập qua tên miền, vì vậy, nó cần được thay thế trong folder public_html. Để tạo file bạn sử dụng File Manager hoặc FTP client. Điền tên file của bạn là testmail.php.

Hướng dẫn dùng mail yo trong PHP

Bước 2 — Sửa file PHP để kiểm tra tính năng gửi email

Bây giờ hãy đặt code này vào trong file testmail.php:

  • 2 dòng đầu tiên là bật tính năng hiện lỗi để bạn thấy lỗi nếu có.
  • $from – Email gửi từ. Nhiều nhà cung cấp không cho phép sử dụng email address tùy ý nên bạn cần điền email address bạn đã tạo cho tên miền này trong trường này để thành công xác thực để gửi được email đi
  • $to – Email người nhận. Khi bạn gửi đi cho mục đích kiểm tra, hãy dùng email cá nhân của bạn để thử.
  • $subject – Tiêu đề email
  • $message – Nội dung của email
  • $headers – Mỗi email có headers. Chúng bao gồm những thông tin như là email gửi từ
  • mail($to,$subject,$message, $headers) – Đây là hàm PHP để chạy lệnh gửi email. Bạn không nên thay đổi gì trong dòng này.
  • echo “The email message was sent.” – PHP function echo sẽ hiển thị thông báo trên màn hình là script đã được thực thi thành công.

Bước 3 — Chạy script

Nếu (như được khuyên dùng) bạn đã đặt PHP script trong thư mục public_html, bạn có thể chạy script bằng cách truy cập yourdomainname/testmail.php. Nếu bạn thấy thông báo The email message was sent. trên trình duyệt có nghĩa là email đã được gửi thành công và bạn có thể thấy nó trong inbox (hoặc trong spam/junk folder)

Nếu có lỗi, bạn nên kiểm tra các thông tin xem điền đúng chưa. Nếu lỗi không hiện trên trình duyệt bạn có thể thử kiểm tra file error_log trong tài khoản của bạn. Nếu bạn không biết cách kiểm tra hãy tham khảo hướng dẫn này trên error logs.

Kết luận

Bây giờ bạn đã biết làm thế nào để gửi email qua PHP. mặc dù bài hướng dẫn này chỉ cho mục đích kiểm tra, nhưng phương pháp cũng cùng như vậy nếu bạn muốn tạo contact form trên website của bạn. Tuy nhiên nếu bạn muốn có thêm những script cao cấp chạy lệnh gửi email sử dụng PHP, hãy xem qua PHPMailer project. Nó có tích hợp tính năng SMTP, mã lỗi error_logs trên 47 ngôn ngữ và nhiều tính năng hữu ích khác.

Tôi là La Trọng Nhơn - người xây dựng nên LADIGI.VN, tôi có niềm đam mê với Digital Marketing. Tôi muốn xây dựng website này để chia sẻ đến những bạn gặp khó khăn khi bắt đầu vào nghề, có thể tiếp cận kiến thức đúng đắn và thực tế thông qua website này.

Nội dung

  • 1. Hàm mail PHP là gì?
  • 2. Các tùy chọn gửi mail PHP
    • Cú pháp mail (Email Syntax)
    • Tham số Email (Email Parameters)
      • To:
      • Subject:
      • Message:
      • Headers:
      • Parameters:
  • 3. Lý do nên dùng mail PHP
  • 4. Điều kiện tiên quyết trước khi sử dụng hàm gửi mail trong PHP
  • 5. Làm thế nào để kích hoạt tính năng gửi email trong Gmail?
  • 6. Viết mã code gửi mail bằng SMTP trong PHP
  • 7. PHP Mail () Ví dụ: Mẫu email (PHP Mail() Example: Email form)
    • Hàm mail trong PHP
  • 8. Lời kết

Tôi có thể đoán được tại sao bạn đến đây. Có phải đây là điều bạn đang gặp phải:

Bạn đang làm việc hoặc có thể là chủ của một website bán hàng hay Blog được rất nhiều người quan tâm VÀ ngay lúc này, mục tiêu bạn cần phải hoàn thành là làm sao để nhận được tất cả mail thông báo từ form liên hệ.

Tất nhiên tại đây bạn đã tìm được giải pháp cho chính mình. Đó chính là Gửi mail PHP bằng hàm mail(). Nhưng vấn đề thật sự bạn quan tâm là làm sao để sử dụng và cách dùng hàm mail() để gửi mail bằng PHP như thế nào.

Hiểu được điều đó, tôi đã thống kê và tổng hợp từng bước, giúp bạn hình dung và dễ dàng ứng dụng hàm mail() nhanh chóng, đạt được hiệu quả toàn diện nhất. Ngoài ra, trong bài viết này tôi sẽ giúp bạn nắm vững:

  • Hàm mail PHP thật sự là là gì?
  • Các tùy chọn gửi mail trong PHP.
  • Điều kiện tiên quyết trước dùng mail?

Đọc ngay nào!

PHP là một ngôn ngữ kịch bản server-side được sử dụng rộng rãi. Nó cung cấp nhiều hàm tích hợp được gọi là hàm được cung cấp sẵn hoặc tự tạo trong PHP (PHP Functions).

PHP providesp hỗ trợ email thông qua một hàm mail() được tích hợp sẵn. Khi sử dụng chức năng gửi mail PHP này, bạn có thể dễ dàng gửi email trực tiếp thông qua tập lệnh PHP của mình.

2. Các tùy chọn gửi mail PHP

Cú pháp mail (Email Syntax)

mail (to,subject,message,headers,parameters);

Tham số Email (Email Parameters)

Sau đây là các tham số email trong PHP.

To:

Tham số đầu tiên có trong hàm email() là “to”. Nó là một tham số bắt buộc. Bạn sẽ phải cung cấp id email của người nhận với thông số này.

Subject:

Nó cũng là một tham số bắt buộc. Nó phải thể hiện được nội dung liên quan tới chủ đề của email và không được chứa các newline characters.

Newline characters là ký tự điều khiển hoặc chuỗi các ký tự điều khiển trong một đặc tả mã hóa ký tự được sử dụng để biểu thị sự kết thúc của một dòng văn bản và bắt đầu một ký tự mới.

Message:

Tham số Message có giới hạn ký tự là 70 ký tự, nên trong quá trình triển khai bạn cần lưu ý để không được vượt quá giới hạn. Hơn nữa, các dòng phải được phân tách bằng (\n).

Headers:

Nó được sử dụng để chỉ định các Headers (tiêu đề) bổ sung như BCC và CC.

Lưu ý:

  • Các Headers phải được phân tách bằng (/r/n).
  • Form header rất cần thiết trong việc gửi email. Nó được đặt bằng tham số này hoặc bằng tệp php.ini.

Parameters:

Nó được sử dụng để đặt tham số bổ sung như cài đặt địa chỉ người gửi trên thư gửi.

Tiếp theo, chúng ta cùng đến nội dung lý do tại sao gửi mail PHP là quyết định đúng và phù hợp với bạn.

3. Lý do nên dùng mail PHP

Đây là lý do trong lập trình website, bạn cần sử dụng hàm mail() PHP:

  • Sử dụng hàm mail() PHP là một phương pháp hiệu quả về tiết kiệm chi phí để thông báo cho người dùng về các sự kiện quan trọng.
  • Cho phép người dùng liên hệ với bạn qua email, bằng cách cung cấp biểu mẫu liên hệ trên website gửi nội dung được cung cấp qua email.
  • Developer (Lập trình viên) có thể sử dụng hàm mail() để nhận lỗi hệ thống qua email.
  • Sử dụng hàm mail() PHP để gửi email cho những người đăng ký nhận Email Newsletter (bản tin trên website).
  • Gửi link đặt lại password cho những người dùng quên password của họ.
  • Bạn có thể sử dụng hàm mail() PHP để gửi email các liên kết kích hoạt hoặc xác nhận. Điều này rất hữu ích khi đăng ký người dùng và xác minh địa chỉ email của họ.

4. Điều kiện tiên quyết trước khi sử dụng hàm gửi mail trong PHP

Trước khi bắt đầu vào nội dung hướng dẫn từng bước về cách gửi thư bằng hàm gửi mail trong PHP, hãy cùng tôi điểm qua những điều kiện tiên quyết trước khi dùng gửi mail bằng PHP nào:

  • Gmail giới hạn số lượng người nhận trong một email và số lượng email có thể được gửi mỗi ngày. Giới hạn hiện tại là 500 Email trong một ngày hoặc 500 người nhận trong một email.
    Bạn cần phải lưu ý để không thể tăng giới hạn này. Nếu bạn muốn gửi vượt quá giới hạn này, thì cần phải tích hợp với nền tảng gửi email của bên thứ ba.
  • Khi đạt đến giới hạn ngưỡng, bạn sẽ không thể gửi tin nhắn trong 24 giờ tới. Sau khi hết thời gian tạm ngưng này, bộ đếm sẽ tự động được đặt lại và người dùng có thể tiếp tục gửi email.
  • Theo mặc định, mọi ứng dụng/mã của bên thứ ba không được phép gửi email bằng tài khoản Gmail của bạn.

5. Làm thế nào để kích hoạt tính năng gửi email trong Gmail?

Để kích hoạt được tính năng gửi email trong gmail, bạn cần thực hiện theo các bước sau:

#1: Trước khi gửi email bằng Máy chủ SMTP của Gmail , bạn phải thực hiện một số cài đặt bảo mật và mức độ quyền trong Google Account Security Settings.

#2. Đảm bảo 2-Step-Verification bị vô hiệu hóa.

#3. Bật ON quyền truy cập “Less Secure App” hoặc click vào đây .

#4: Nếu 2-step-verification được bật, thì bạn sẽ phải tạo mật khẩu cho ứng dụng hoặc thiết bị của mình.

#5: Đối với các biện pháp bảo mật, Google có thể yêu cầu bạn hoàn thành bước bổ sung khi đăng nhập. Click vào đấy để cho phép truy cập vào tài khoản Google của bạn bằng thiết bị/ứng dụng mới.

6. Viết mã code gửi mail bằng SMTP trong PHP

Bước 1: Tải xuống thư viện PHPMailer từ liên kết github này. Tải xuống trực tiếp tệp .zip.

Giải nén master.zip trong thư mục ứng dụng của bạn và chạy lệnh sau từ thư mục ứng dụng.

Hướng dẫn dùng mail yo trong PHP
Composer là cách được khuyến nghị để cài đặt PHPMailer.

Bước 2: Viết mã PHP để tạo kết nối SMTP

  • Sử dụng thông tin đăng nhập Gmail, kết nối với máy chủ lưu trữ “smtp.gmail.com”
  • Click vào đây để biết thêm một số Ví dụ và Hướng dẫn về PHPMailer

Bước 3: Bao gồm các gói và tệp cho PHPMailer và giao thức SMTP:

Hướng dẫn dùng mail yo trong PHP
Bước 4: Khởi tạo PHP Mailer và đặt SMTP làm giao thức gửi thư:

Hướng dẫn dùng mail yo trong PHP
Bước 5: Đặt các thông số cần thiết để tạo kết nối SMTP như máy chủ, cổng và thông tin đăng nhập tài khoản.

SSL và TLS đều là giao thức mật mã cung cấp xác thực và mã hóa dữ liệu giữa các máy chủ, máy và ứng dụng hoạt động trên mạng. SSL là tiền thân của TLS.

Hướng dẫn dùng mail yo trong PHP
Bước 6: Đặt các thông số bắt buộc cho tiêu đề và nội dung email:

Hướng dẫn dùng mail yo trong PHP
Bước 7: Gửi email và bắt các trường hợp ngoại lệ bắt buộc:

Hướng dẫn dùng mail yo trong PHP

7. PHP Mail () Ví dụ: Mẫu email (PHP Mail() Example: Email form)

Tiếp theo tôi sẽ gửi đến bạn một số cách sử dụng thực tế của hàm mail trong PHP này.

Đây là biểu mẫu gửi Email mà bạn có thể phải phối hợp với người dùng của mình. Bạn có thể sử dụng biểu mẫu này để nhận các câu hỏi từ khách hàng của mình, cho dù bạn có nền tảng Thương mại điện tử, trang web B2B hay B2C.

Hướng dẫn dùng mail yo trong PHP

Biểu mẫu gửi Email

Dưới đây là một số ảnh chụp nhanh về các hoạt động của biểu mẫu:

Khi biểu mẫu được gửi trống

Hướng dẫn dùng mail yo trong PHP

Biểu mẫu được gửi trống

Khi mọi trường được gửi đúng

Hướng dẫn dùng mail yo trong PHP

Khi trường hợp gửi mail đúng

Trong hộp thư đến của quản trị viên web

Hướng dẫn dùng mail yo trong PHP

Hộp thư đến của quản trị viên web

Hàm mail trong PHP

Đây là mã của email_form.php bạn có thể tham khảo:

  1. if(isset($_POST[’email’])) {
  2. $email_to = “”;
  3. $email_subject = “Summarized propose of the email”;
  4. //Errors to show if there is a problem in form fields.
  5. function died($error) {
  6. echo “We are sorry that we can procceed your request due to error(s)”;
  7. echo “Below is the error(s) list

    ”;
  8. echo $error.”

    ”;
  9. echo “Please go back and fix these errors.

    ”;
  10. die();
  11. }
  12. // validation expected data exists
  13. if(!isset($_POST[‘first_name’]) ||
  14. !isset($_POST[‘last_name’]) ||
  15. !isset($_POST[’email’]) ||
  16. !isset($_POST[‘telephone’]) ||
  17. !isset($_POST[‘comments’])) {
  18. died(‘We are sorry to proceed your request due to error within form entries’);
  19. }
  20. $first_name = $_POST[‘first_name’]; // required
  21. $last_name = $_POST[‘last_name’]; // required
  22. $email_from = $_POST[’email’]; // required
  23. $telephone = $_POST[‘telephone’]; // not required
  24. $comments = $_POST[‘comments’]; // required
  25. $error_message = “”;
  26. $email_exp = ‘/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/’;
  27. if(!preg_match($email_exp,$email_from)) {
  28. $error_message .= ‘You entered an invalid email
    ’;
  29. }
  30. $string_exp = “/^[A-Za-z .’-]+$/”;
  31. if(!preg_match($string_exp,$first_name)) {
  32. $error_message .= ‘Invalid first name
    ’;
  33. }
  34. if(!preg_match($string_exp,$last_name)) {
  35. $error_message .= ‘Invalid Last name
    ’;
  36. }
  37. if(strlen($comments) < 2) {
  38. $error_message .= ‘Invalid comments
    ’;
  39. }
  40. if(strlen($error_message) > 0) {
  41. died($error_message);
  42. }
  43. $email_message = “Form details below.\n\n”;
  44. function clean_string($string) {
  45. $bad = array(“content-type”,”bcc:”,”to:”,”cc:”,”href”);
  46. return str_replace($bad,””,$string);
  47. }
  48. $email_message .= “First Name: “.clean_string($first_name).”\n”;
  49. $email_message .= “Last Name: “.clean_string($last_name).”\n”;
  50. $email_message .= “Email: “.clean_string($email_from).”\n”;
  51. $email_message .= “Telephone: “.clean_string($telephone).”\n”;
  52. $email_message .= “Comments: “.clean_string($comments).”\n”;
  53. // create email headers
  54. $headers = ‘From: ‘.$email_from.”\r\n”.
  55. ‘Reply-To: ‘.$email_from.”\r\n” .
  56. ‘X-Mailer: PHP/’ . phpversion();
  57. @mail($email_to, $email_subject, $email_message, $headers);
  58. ?>
  59. Thank you for contacting us. We will be in touch with you very soon.
  60. }
  61. ?>

8. Lời kết

Đến đây, bạn đã biết được cách gửi mail PHP bằng hàm mail() và viết code gửi mail bằng SMTP trong PHP rồi đấy. Đó là tất cả những kiến thức tôi muốn gửi đến bạn.

Hy vọng đây là những kiến thức hữu ích giúp bạn nhanh chóng chinh phục hành trình lập trình của mình. Hãy học và áp dụng nhiều hơn nhé.

Nêu bạn muốn học 1 khóa học PHP online thì hãy đến với Ironhack Việt Nam.

Bất cứ thắc mắc hay cần tư vấn thêm về kiến thức lập trình các chuyên gia IRONHACK luôn sẵn sàng hỗ trợ bạn.

Chúc bạn thành công!