Gửi email trong PHP
Trong hướng dẫn này, bạn sẽ học cách gửi các email văn bản hoặc HTML đơn giản trực tiếp từ script bằng cách sử dụng hàm mail() trong PHP .
Hàm mail() trong PHP
Gửi email rất phổ biến đối với một ứng dụng web, 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 của người dùng hoặc nhận xét 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 của PHP để tạo và gửi thông báo email đến một hoặc nhiều người nhận động từ ứng dụng PHP của bạn ở dạng văn bản thuần túy hoặc HTML được định dạng. Cú pháp cơ bản của hàm này như sau:
Bảng sau đây giải thích tóm tắt ý nghĩa các tham số của hàm này.
Tham số | Miêu tả |
---|---|
Bắt buộc- Các thông số sau là bắt buộc | |
to |
Địa chỉ email của người nhận. |
subject |
Chủ đề của email sẽ được gửi.Tham số này tức là dòng chủ đề không được chứa bất kỳ ký tự dòng mới nào (\n ). |
message |
Xác định tin nhắn sẽ được gửi đi.Mỗi dòng phải được phân tách bằng ký hiệu xuống dòng (\n ).Các dòng không được vượt quá 70 ký tự. |
Tùy chọn- Các thông số sau là tùy chọn | |
headers |
Điều này thường được sử dụng để thêm các tiêu đề phụ như "Từ", "Cc", "Bcc".Các tiêu đề bổ sung phải được phân tách bằng dấu xuống dòng cộng với nguồn cấp dữ liệu dòng-CRLF (\r\n ). |
parameters |
Được sử dụng để chuyển các tham số bổ sung. |
Gửi email văn bản thuần túy
Cách đơn giản nhất để gửi email bằng PHP là gửi một email văn bản. Trong ví dụ dưới đây, trước tiên chúng ta khai báo các biến - địa chỉ email của người nhận, dòng tiêu đề và nội dung thư - sau đó chúng ta chuyển các biến này cho hàm mail() để gửi email.
Ví dụ
<?php
$to = 'tamnguyen@email.com';
$subject = 'Thư xin nghỉ phép';
$message = 'Chào sếp , Hôm nay cho em xin nghỉ một buổi được không ạ?';
$from = 'minhtam@email.com';
// Sending email
if(mail($to, $subject, $message)){
echo 'Email của bạn đã được gửi đi';
} else{
echo 'Không thể gửi email, vui lòng thử lại.';
}
?>
Gửi email có định dạng HTML
Khi bạn gửi nội dung email văn bản bằng PHP, tất cả nội dung sẽ được coi là văn bản đơn giản (không kèm mã html). Chúng tôi sẽ cải thiện kết quả đó và biến email văn bản thường thành email có định dạng HTML.
Để gửi một email HTML, quy trình sẽ giống như vậy. Tuy nhiên, lần này chúng tôi cần cung cấp thêm các tiêu đề cũng như thông báo có định dạng HTML.
Ví dụ
<?php
$to = 'tamnguyen@email.com';
$subject = 'Thư xin nghỉ phép';
$from = 'minhtam@email.com';
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Create email headers
$headers .= 'From: '.$from."\r\n".
'Reply-To: '.$from."\r\n" .
'X-Mailer: PHP/' . phpversion();
// Compose a simple HTML email message
$message = '<html><body>';
$message .= '<h1 style="color:#f40;">Chào sếp!</h1>';
$message .= '<p style="color:#080;font-size:18px;">Hôm nay cho em xin nghỉ một buổi được không ạ?</p>';
$message .= '</body></html>';
// Sending email
if(mail($to, $subject, $message, $headers)){
echo 'Email của bạn đã gửi thành công.';
} else{
echo 'Không thể gửi email, vui lòng thử lại.';
}
?>
Ghi chú: Tuy hàm PHP mail() là một phần của lõi PHP nhưng bạn cần thiết lập một máy chủ thư trên máy của mình để làm cho nó thực sự hoạt động.
Trong hai chương tiếp theo ( Xử lý biểu mẫu PHP và Xác thực biểu mẫu PHP ), bạn sẽ học 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 cách sử dụng tính năng gửi thư PHP này.