2010-05-24 37 views
22

Tôi khá khó khăn khi gặp sự cố khi gửi thư từ tập lệnh PHP. Một số dữ liệu:Gỡ lỗi PHP Mail() và/hoặc PHPMailer

  • Shared hosting, không có quyền truy cập SSH, chỉ lưu trữ bảng cung cấp
  • phiên bản PHP 5.2.5
  • Năm ngoái, tôi đã xây dựng một trang web mà không có sự cố khi gửi mail với cùng lưu trữ
  • Giả sử tên miền là “domain.com” và địa chỉ riêng của tôi là “[email protected]” vì mục đích anonimity trong đoạn mã sau.

Dưới đây là các mã:

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 

$to = "[email protected]"; 
$subject = "Hi"; 
$body = "Test 1\nTest 2\nTest 3"; 
$headers = 'From: [email protected]' . "\r\n" . 
    'errors-to: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

if (mail($to, $subject, $body, $headers)) { 
    echo("Message successfully sent"); 
} else { 
    echo("Message sending failed"); 
} 

require('class.phpmailer.php'); 
$message = "Hello world"; 
$mail = new PHPMailer(); 
$mail->CharSet = "UTF-8"; 
$mail->AddAddress("[email protected]", "Agos"); 
$mail->SetFrom("[email protected]","My Site"); 
$mail->Subject = "Test Message"; 
$mail->Body = $message; 
$mail->Send(); 
?> 

Và đây là những gì tôi nhận được:

Message sending failed Could not instantiate mail function.

Đó là phân vân để nói rằng ít nhất. Tôi có thể làm gì để có được ít nhất một số lỗi có ý nghĩa hơn không? Tại sao mã từ lớp hiển thị trong tệp của tôi?

+0

Fatal error: Class 'PHPMailer' không tìm thấy trong /mailtest.php trên đường dây 20 ? những gì trên dòng 20? –

+0

@Mihai dòng 20 là $ mail = new PHPMailer(); – Agos

Trả lời

37

Dường như tệp class.phpmailer.php bị hỏng. Tôi sẽ tải xuống the latest version và thử lại.

Tôi luôn sử dụng tính năng SMTP PHPMailer của:

$mail->IsSMTP(); 
$mail->Host = "localhost"; 

Và nếu bạn cần thông tin gỡ lỗi:

$mail->SMTPDebug = 2; // enables SMTP debug information (for testing) 
         // 1 = errors and messages 
         // 2 = messages only 
+0

mọi thứ đã diễn ra. cảm ơn! – Agos

Các vấn đề liên quan