E-mail - PHP

Tiếp theo, chúng ta sẽ học cách gửi email văn bản hoặc HTML đơn giản bằng cách sử dụng hàm mail() trong PHP.

Hàm mail()

Gửi email rất phổ biến đối với một ứng dụng website, ví dụ như ta 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 thông tin cho người dùng đã đăng ký của bạn hoặc nhận phản hồi, nhận xét thông qua biểu mẫu liên hệ của trang web...

Bạn có thể sử dụng hàm mail() tích hợp sẵn trong PHP để tạo và gửi thông báo email đến một hoặc nhiều người nhận từ ứng dụng PHP của bạn ở dạng văn bản thuần túy hoặc theo dạng HTML.

Cú pháp cơ bản của hàm này như sau:

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

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 đ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. 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ư "From", "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 mail 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ụ sau đâ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 đó bạn chuyển các biến này cho hàm mail() để gửi email.

Ví dụ

<?php
$to = 'datle@email.com';
$subject = 'Thư xin nghỉ ốm';
$message = 'Chào sếp , Hôm nay cho em xin nghỉ một buổi được không ạ.?'; 
$from = 'datle@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 với đị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 ta 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ư trên. Tuy nhiên, lần này chúng ta 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 = 'datle@email.com';
$subject = 'Thư xin nghỉ ốm';
$from = 'datle@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 ), chúng ta 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.

 

Bài viết mới cập nhật