Gửi mail PHP là gì? Code gửi mail bằng SMTP trong PHP
25/09/2024
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!
1. Hàm mail PHP là gì?
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);
Tìm hiểu các chương trình Bootcamp chuẩn quốc tế?
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
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:
Bước 4: Khởi tạo PHP Mailer và đặt SMTP làm giao thức gửi thư:
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.
Bước 6: Đặt các thông số bắt buộc cho tiêu đề và nội dung email:
Bước 7: Gửi email và bắt các trường hợp ngoại lệ bắt buộc:
Bạn đã sẵn sàng đổi thay sự nghiệp chưa?
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.
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
Khi mọi trường được gửi đúng
Trong 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:
- <?php
- if(isset($_POST[’email’])) {
- $email_to = “atif.shahab@cloudways.com”;
- $email_subject = “Summarized propose of the email”;
- //Errors to show if there is a problem in form fields.
- function died($error) {
- echo “We are sorry that we can procceed your request due to error(s)”;
- echo “Below is the error(s) list <br /><br />”;
- echo $error.”<br /><br />”;
- echo “Please go back and fix these errors.<br /><br />”;
- die();
- }
- // validation expected data exists
- if(!isset($_POST[‘first_name’]) ||
- !isset($_POST[‘last_name’]) ||
- !isset($_POST[’email’]) ||
- !isset($_POST[‘telephone’]) ||
- !isset($_POST[‘comments’])) {
- died(‘We are sorry to proceed your request due to error within form entries’);
- }
- $first_name = $_POST[‘first_name’]; // required
- $last_name = $_POST[‘last_name’]; // required
- $email_from = $_POST[’email’]; // required
- $telephone = $_POST[‘telephone’]; // not required
- $comments = $_POST[‘comments’]; // required
- $error_message = “”;
- $email_exp = ‘/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/’;
- if(!preg_match($email_exp,$email_from)) {
- $error_message .= ‘You entered an invalid email<br />’;
- }
- $string_exp = “/^[A-Za-z .’-]+$/”;
- if(!preg_match($string_exp,$first_name)) {
- $error_message .= ‘Invalid first name<br />’;
- }
- if(!preg_match($string_exp,$last_name)) {
- $error_message .= ‘Invalid Last name<br />’;
- }
- if(strlen($comments) < 2) {
- $error_message .= ‘Invalid comments<br />’;
- }
- if(strlen($error_message) > 0) {
- died($error_message);
- }
- $email_message = “Form details below.\n\n”;
- function clean_string($string) {
- $bad = array(“content-type”,”bcc:”,”to:”,”cc:”,”href”);
- return str_replace($bad,””,$string);
- }
- $email_message .= “First Name: “.clean_string($first_name).”\n”;
- $email_message .= “Last Name: “.clean_string($last_name).”\n”;
- $email_message .= “Email: “.clean_string($email_from).”\n”;
- $email_message .= “Telephone: “.clean_string($telephone).”\n”;
- $email_message .= “Comments: “.clean_string($comments).”\n”;
- // create email headers
- $headers = ‘From: ‘.$email_from.”\r\n”.
- ‘Reply-To: ‘.$email_from.”\r\n” .
- ‘X-Mailer: PHP/’ . phpversion();
- @mail($email_to, $email_subject, $email_message, $headers);
- ?>
- <!– include your own success html here –>
- Thank you for contacting us. We will be in touch with you very soon.
- <?php
- }
- ?>
- <form name=”contactform” method=”post” action=”email_form.php”>
- <table width=”450px”>
- <tr>
- <td valign=”top”>
- <label for=”first_name”>First Name *</label>
- </td>
- <td valign=”top”>
- <input type=”text” name=”first_name” maxlength=”50″ size=”30″>
- </td>
- </tr>
- <tr>
- <td valign=”top””>
- <label for=”last_name”>Last Name *</label>
- </td>
- <td valign=”top”>
- <input type=”text” name=”last_name” maxlength=”50″ size=”30″>
- </td>
- </tr>
- <tr>
- <td valign=”top”>
- <label for=”email”>Email Address *</label>
- </td>
- <td valign=”top”>
- <input type=”text” name=”email” maxlength=”80″ size=”30″>
- </td>
- </tr>
- <tr>
- <td valign=”top”>
- <label for=”telephone”>Telephone Number</label>
- </td>
- <td valign=”top”>
- <input type=”text” name=”telephone” maxlength=”30″ size=”30″>
- </td>
- </tr>
- <tr>
- <td valign=”top”>
- <label for=”comments”>Comments *</label>
- </td>
- <td valign=”top”>
- <textarea name=”comments” maxlength=”1000″ cols=”25″ rows=”6″></textarea>
- </td>
- </tr>
- <tr>
- <td colspan=”2″ style=”text-align:center”>
- <input type=”submit” value=”Submit”> </a>
- </td>
- </tr>
- </table>
- </form>
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 Onschool Bootcamp.
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!
Các chia sẻ của cựu học viên Onschool Bootcamp?
Danh mục bài viết
- Kiến thức lập trình
- Cộng đồng học viên
- Chia sẻ học viên