Để có thể sử dụng hàm mail của PHP ở localhost trên XAMPP, bạn cần cấu hình hình vài thứ trên XAMPP để có thể gửi mail được. Bạn có thể gửi mail từ localhost bằng cách sử dụng mailserver Mecury Mail được tích hợp sẵn trên XAMPP. Bài viết này sẽ hướng dẫn các bạn cấu hình gửi mail bằng PHP sử dụng SMTP Gmail trên XAMPP Contents 1. Mở file C:\xampp\sendmail\sendmail.iniCấu hình các tham số như sau: [sendmail] smtp_server=smtp.gmail.com smtp_port=587 smtp_ssl=auto default_domain=localhost error_logfile=error.log debug_logfile=debug.log auth_username=[your_gmail_account_username]@gmail.com auth_password=[your_gmail_account_password] 2. Mở file C:\xampp\php\php.iniCấu hình các tham số như sau: [mail function] SMTP = stmp.gmail.com smtp_port = 587 sendmail_from = [your_gmail_account_username]@gmail.com sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" 3. Khởi động lại apacheMở XAMPP Control Panel lên, stop sau đó start lại apache 4. Chạy chương trình sendmailChạy file sendmail tại đường dẫn C:\xampp\sendmail\sendmail.exe Đến đây bạn đã cấu hình xong! Sử dụng hàm mail để kiểm tra việc gửi mail Chúc các bạn thực hiện thành công! RelatedRate This ArticleRelated Articles
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ề 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..."; } ?> Gửi html trong mailNếu trong 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 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ụ 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..."; } ?> Trên đây là bạn sử dụng trực tiếp hàm |