Trong bài hướng dẫn học lập trình PHP này, mình sẽ hướng dẫn bạn cách cách gửi email văn bản thông thường hoặc HTML đơn giản trong PHP bằng hàm mail().
Giới thiệu về hàm mail() trong PHP
Gửi tin email là rất phổ biến trong khi lập trình website, ví dụ, gửi email chào mừng khi người dùng tạo tài khoản trên trang web của bạn, gửi bản tin cho người dùng đã đăng ký của bạn hoặc nhận phản hồi hoặc nhận xét của người dùng thông qua biểu mẫu liên hệ của trang web, v.v.
Bạn có thể sử dụng hàm mail() tích hợp sẵn trong PHP để tạo và gửi thư email đến một hoặc nhiều người nhận từ trang web PHP của bạn ở dạng văn bản thuần hoặc văn bản dạng HTML được định dạng.
Cú pháp cơ bản của chức năng này như sau:
mail(to, subject, message, headers, parameters)
Giải thích về các tham số trong hàm mail()
Các tham số bắt buộc:
- to: Địa chỉ email người nhận
- subject: Tiêu đề, chủ đề của email sẽ được gửi. Tham số này không thể chứa bất kỳ ký tự tạo dòng mới nào (\n).
- message: Đây là tin nhắn sẽ được gửi. Mỗi dòng nên được phân tách ra bằng (\n). Các dòng không được vượt quá 70 ký tự.
Các tham số tùy chọn (có thể có hoặc không):
- headers: Tham số này thường được sử dụng để thêm các tiêu đề bổ sung, chẳng hạn như ‘From’, ‘Cc’, ‘Bcc’. Các tiêu đề bổ sung phải được phân tách bằng return và xuống dòng (\r\n).
- parameters: Đây là các tham số bổ sung
Hướng dẫn gửi email văn bản đơn giản trong PHP
Cách đơn giản nhất để gửi email bằng PHP là gửi email văn bản thông thường (chỉ bao gồm text).
Trong ví dụ dưới đây, trước tiên chúng ta khai báo các biến – địa chỉ email, dòng tiêu đề và nội dung thư – sau đó chúng ta truyền các biến này đến hàm mail() để gửi email.
<?php
// Khai báo các biến
$to = 'hello@niithanoi.edu.vn';
$subject = 'Xin chào NIIT';
$message = 'Xin chào, Chúng ta làm bạn nhé';
$from = 'ironman@email.com';
// Gửi Email
if(mail($to, $subject, $message)){
echo 'Chúc mừng. Email của bạn được gửi thành công.';
} else{
echo 'Không thể gửi Email. Vui lòng thử lại.';
}
?>
Ok, bên trên đây bạn đã biết cách gửi email bằng văn bản thông thường. Rất đơn giản phải không?
Tiếp tục nhé…
Hướng dẫn gửi email văn bản định dạng HTML trong PHP
Vì khi bạn gửi email văn bản thông thường (chỉ có text) bằng PHP, tất cả nội dung sẽ rất đơn điệu, không thu hút người dùng.
Chúng ta sẽ cải thiện đầu ra đó và biến email thành email có định dạng HTML.
Để gửi email HTML, về quy trình gửi email sẽ giống nhau. Tuy nhiên, lần này chúng ta cần cung cấp thêm các headers cũng như một thông báo được định dạng HTML.
<?php
// Khai báo biến
$to = 'hello@niithanoi.edu.vn';
$subject = 'Xin chào NIIT';
$from = 'ironman@email.com';
// Để gửi thư HTML, Content-type header phải được thiết lập
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
// Tạo Email headers
$headers .= 'From: '.$from."\r\n".
'Reply-To: '.$from."\r\n" .
'X-Mailer: PHP/' . phpversion();
// Soạn tin nhắn email HTML đơn giản
$message = '<html><body>';
$message .= '<h1 style="color:#f40;">Xin chào!</h1>';
$message .= '<p style="color:#080;font-size:18px;">Chúng ta làm bạn nhé!</p>';
$message .= '</body></html>';
// Gửi email bằng hamgf mail()
if(mail($to, $subject, $message, $headers)){
echo 'Chúc mừng. Email của bạn được gửi thành công.';
} else{
echo 'Không thể gửi Email. Vui lòng thử lại.';
}
?>
Note 1: .= là toán tử nối và gán. Có nghĩa là từng dòng sẽ được nối vào với nhau và gán vào biến $message
Note 2: Hàm PHP mail() là một phần của PHP core nhưng bạn cần thiết lập mail server trên máy của mình để làm cho nó thực sự hoạt động.
Việc gửi email trong PHP cũng đơn giản phải không nào? :D. Dù là email văn bản thông thường hay Email HTML cũng đơn giản thôi.
- Nếu muốn học bài bản lập trình web với PHP thì xem ngay!
Trong hai chương tiếp theo chúng ta sẽ học về (Xử lý biểu mẫu PHP và Xác thực mẫu PHP), bạn sẽ tìm hiểu cách triển khai biểu mẫu liên hệ tương tác trên trang web của mình để nhận nhận xét và phản hồi của người dùng thông qua email bằng tính năng gửi email PHP này.