Gửi mail trong PHP với hàm mail()PHP có hàm mail($to ,$subject ,$message, [$headers], [$parameters]); Trong đó:
Nếu mail gửi đi thành công, hàm trả về <?php $to = ""; $subject = "Tiêu đề email"; $message = "Nội dung email"; $header = "From: \r\n"; $header .= "Cc: \r\n"; $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>3 Ví dụ sau gửi đi một email từ địa chỉ <?php $to = ""; $subject = "Tiêu đề email"; $message = "Nội dung email"; $header = "From: \r\n"; $header .= "Cc: \r\n"; $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>4 đến địa chỉ <?php $to = ""; $subject = "Tiêu đề email"; $message = "Nội dung email"; $header = "From: \r\n"; $header .= "Cc: \r\n"; $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>4 đồng thời CC đến <?php $to = ""; $subject = "Tiêu đề email"; $message = "Nội dung email"; $header = "From: \r\n"; $header .= "Cc: \r\n"; $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>4 <?php $to = ""; $subject = "Tiêu đề email"; $message = "Nội dung email"; $header = "From: \r\n"; $header .= "Cc: \r\n"; $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?> Gửi html trong mailNếu trong <?php $to = ""; $subject = "Tiêu đề email"; $message = "Nội dung email"; $header = "From: \r\n"; $header .= "Cc: \r\n"; $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>8 các thông số như phiên bản của <?php $to = ""; $subject = "Tiêu đề email"; $message = "Nội dung email"; $header = "From: \r\n"; $header .= "Cc: \r\n"; $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>9, kiểu nội dung, mã hóa ký tự (UTF-8 ...) Trở lại ví dụ trên, thiết lập thêm thông số để gửi đi nội dung HTML <?php $to = ""; $subject = "Tiêu đề email"; $message = "<h2>Đây là Email có chứa HTML</h2> <p>Đoạn văn trong Email</p>"; //MỚI $header = "From: \r\n"; $header .= "Cc: \r\n"; $header .= "MIME-Version: 1.0\r\n"; //MỚI $header .= "Content-type: text/html\r\n"; //MỚI $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?> Gửi đính kèm trong mailĐể gửi đính kèm thì phần <?php $to = ""; $subject = "Tiêu đề email"; $message = "<h2>Đây là Email có chứa HTML</h2> <p>Đoạn văn trong Email</p>"; //MỚI $header = "From: \r\n"; $header .= "Cc: \r\n"; $header .= "MIME-Version: 1.0\r\n"; //MỚI $header .= "Content-type: text/html\r\n"; //MỚI $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>0 cần thiết lập <?php $to = ""; $subject = "Tiêu đề email"; $message = "<h2>Đây là Email có chứa HTML</h2> <p>Đoạn văn trong Email</p>"; //MỚI $header = "From: \r\n"; $header .= "Cc: \r\n"; $header .= "MIME-Version: 1.0\r\n"; //MỚI $header .= "Content-type: text/html\r\n"; //MỚI $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>1 là <?php $to = ""; $subject = "Tiêu đề email"; $message = "Nội dung email"; $header = "From: \r\n"; $header .= "Cc: \r\n"; $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>4multipart/mixed Lúc này phần header của email cần mô tả có các vùng, mỗi vùng tương ứng với một nội dung (như vùng cho nội dung email, vùng cho đính kèm). Định nghĩa vùng trong phần header: Đầu tiên cần có một chuỗi ký tự dài 32 (ví dụ <?php $to = ""; $subject = "Tiêu đề email"; $message = "<h2>Đây là Email có chứa HTML</h2> <p>Đoạn văn trong Email</p>"; //MỚI $header = "From: \r\n"; $header .= "Cc: \r\n"; $header .= "MIME-Version: 1.0\r\n"; //MỚI $header .= "Content-type: text/html\r\n"; //MỚI $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>3 có thể tạo ra bằng hàm <?php $to = ""; $subject = "Tiêu đề email"; $message = "<h2>Đây là Email có chứa HTML</h2> <p>Đoạn văn trong Email</p>"; //MỚI $header = "From: \r\n"; $header .= "Cc: \r\n"; $header .= "MIME-Version: 1.0\r\n"; //MỚI $header .= "Content-type: text/html\r\n"; //MỚI $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>4), mỗi vùng bắt đầu bằng thêm ký hiệu <?php $to = ""; $subject = "Tiêu đề email"; $message = "<h2>Đây là Email có chứa HTML</h2> <p>Đoạn văn trong Email</p>"; //MỚI $header = "From: \r\n"; $header .= "Cc: \r\n"; $header .= "MIME-Version: 1.0\r\n"; //MỚI $header .= "Content-type: text/html\r\n"; //MỚI $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>5 vào trước <?php $to = ""; $subject = "Tiêu đề email"; $message = "<h2>Đây là Email có chứa HTML</h2> <p>Đoạn văn trong Email</p>"; //MỚI $header = "From: \r\n"; $header .= "Cc: \r\n"; $header .= "MIME-Version: 1.0\r\n"; //MỚI $header .= "Content-type: text/html\r\n"; //MỚI $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>3 và khi kết thúc tất cả các phân đoạn dùng <?php $to = ""; $subject = "Tiêu đề email"; $message = "<h2>Đây là Email có chứa HTML</h2> <p>Đoạn văn trong Email</p>"; //MỚI $header = "From: \r\n"; $header .= "Cc: \r\n"; $header .= "MIME-Version: 1.0\r\n"; //MỚI $header .= "Content-type: text/html\r\n"; //MỚI $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>7 để kết thúc. Cũng lưu ý thường mã hóa dữ liệu theo <?php $to = ""; $subject = "Tiêu đề email"; $message = "<h2>Đây là Email có chứa HTML</h2> <p>Đoạn văn trong Email</p>"; //MỚI $header = "From: \r\n"; $header .= "Cc: \r\n"; $header .= "MIME-Version: 1.0\r\n"; //MỚI $header .= "Content-type: text/html\r\n"; //MỚI $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>8 và nội dung dài được chia nhỏ thành nhiều dòng bằng hàm <?php $to = ""; $subject = "Tiêu đề email"; $message = "<h2>Đây là Email có chứa HTML</h2> <p>Đoạn văn trong Email</p>"; //MỚI $header = "From: \r\n"; $header .= "Cc: \r\n"; $header .= "MIME-Version: 1.0\r\n"; //MỚI $header .= "Content-type: text/html\r\n"; //MỚI $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>9. Thực hành diễn giải chi tiết theo ví dụ sau, gửi mail có đính kèm file <? $to = ""; $subject = "Gửi email có đính kèm file"; $message = "Đây là nội dung email."; //Mở file để đọc nội dung $file = fopen( "/home/text.txt", "r" ); if( $file == false ) { echo "Error in opening file"; exit(); } $size = filesize("/home/text.txt"); $content = fread( $file, $size); //Nội dung file //Mã hóa nội dung đính kèm - chia nhỏ nội dung thành nhiều dong $encoded_content = chunk_split( base64_encode($content)); //Tạo ra một chuỗi 32 dùng đề phân vùng mô tả $num = md5( time() ); //Phần header chính $header = "From:\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: multipart/mixed; "; $header .= "boundary=$num\r\n"; $header .= "--$num\r\n"; //Phần nội dùng Email $header .= "Content-Type: text/plain\r\n"; $header .= "Content-Transfer-Encoding:8bit\r\n\n"; $header .= "$message\r\n"; $header .= "--$num\r\n"; //Phần nội dung đính kèm $header .= "Content-Type: multipart/mixed; "; $header .= "name=\"test.txt\"\r\n"; $header .= "Content-Transfer-Encoding:base64\r\n"; $header .= "Content-Disposition:attachment; "; $header .= "filename=\"text.txt\"\r\n\n"; $header .= "$encoded_content\r\n"; $header .= "--$num--"; //Kết thúc các phân đoạn //Gửi mail $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>0 <? $to = ""; $subject = "Gửi email có đính kèm file"; $message = "Đây là nội dung email."; //Mở file để đọc nội dung $file = fopen( "/home/text.txt", "r" ); if( $file == false ) { echo "Error in opening file"; exit(); } $size = filesize("/home/text.txt"); $content = fread( $file, $size); //Nội dung file //Mã hóa nội dung đính kèm - chia nhỏ nội dung thành nhiều dong $encoded_content = chunk_split( base64_encode($content)); //Tạo ra một chuỗi 32 dùng đề phân vùng mô tả $num = md5( time() ); //Phần header chính $header = "From:\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: multipart/mixed; "; $header .= "boundary=$num\r\n"; $header .= "--$num\r\n"; //Phần nội dùng Email $header .= "Content-Type: text/plain\r\n"; $header .= "Content-Transfer-Encoding:8bit\r\n\n"; $header .= "$message\r\n"; $header .= "--$num\r\n"; //Phần nội dung đính kèm $header .= "Content-Type: multipart/mixed; "; $header .= "name=\"test.txt\"\r\n"; $header .= "Content-Transfer-Encoding:base64\r\n"; $header .= "Content-Disposition:attachment; "; $header .= "filename=\"text.txt\"\r\n\n"; $header .= "$encoded_content\r\n"; $header .= "--$num--"; //Kết thúc các phân đoạn //Gửi mail $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?> Trên đây là bạn sử dụng trực tiếp hàm <? $to = ""; $subject = "Gửi email có đính kèm file"; $message = "Đây là nội dung email."; //Mở file để đọc nội dung $file = fopen( "/home/text.txt", "r" ); if( $file == false ) { echo "Error in opening file"; exit(); } $size = filesize("/home/text.txt"); $content = fread( $file, $size); //Nội dung file //Mã hóa nội dung đính kèm - chia nhỏ nội dung thành nhiều dong $encoded_content = chunk_split( base64_encode($content)); //Tạo ra một chuỗi 32 dùng đề phân vùng mô tả $num = md5( time() ); //Phần header chính $header = "From:\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: multipart/mixed; "; $header .= "boundary=$num\r\n"; $header .= "--$num\r\n"; //Phần nội dùng Email $header .= "Content-Type: text/plain\r\n"; $header .= "Content-Transfer-Encoding:8bit\r\n\n"; $header .= "$message\r\n"; $header .= "--$num\r\n"; //Phần nội dung đính kèm $header .= "Content-Type: multipart/mixed; "; $header .= "name=\"test.txt\"\r\n"; $header .= "Content-Transfer-Encoding:base64\r\n"; $header .= "Content-Disposition:attachment; "; $header .= "filename=\"text.txt\"\r\n\n"; $header .= "$encoded_content\r\n"; $header .= "--$num--"; //Kết thúc các phân đoạn //Gửi mail $success = mail ($to,$subject,$message,$header); if( $success == true ) { echo "Đã gửi mail thành công..."; } else { echo "Không gửi đi được..."; } ?>2 để đảm bảo hàm mail() có hoạt động. Ngoài ra nhiều thư viện, framework đã trừu tượng hóa cách gửi mail(), giúp cho việc gửi email được dễ dàng hơn bạn có thể dùng như: PHPMailer - Zend Mail |