2010-10-21 39 views
7

Tôi đang cố gắng thêm thư trả lời để gửi tới địa chỉ thư của tôi và nó chỉ đặt từ "tôi" và trả lời địa chỉ của tôi.phpmailer không thể thêm thư trả lời vào địa chỉ

Bất kỳ ý tưởng nào tôi đang làm sai? Tôi đã thêm $ mail-> AddReplyTo. Tôi muốn nó trả lời người gửi mẫu web.

$name = $_POST['name']; 
$telephone = $_POST['telephone']; 
$email = $_POST['email']; 
$message = $_POST['message']; 

$body    = file_get_contents('phpmailer/contents.html'); 
$body    = eregi_replace("[\]",'',$body); 
$body    = eregi_replace("<name>", $name,$body); 
$body    = eregi_replace("<telephone>", $telephone, $body); 
$body    = eregi_replace("<email>", $email, $body); 
$body    = eregi_replace("<message>", $message, $body); 




$mail->IsSMTP(); // telling the class to use SMTP 
$mail->Host  = "smtp.gmail.com"; // SMTP server 
        // enables SMTP debug information (for testing) 
              // 1 = errors and messages 
              // 2 = messages only 
$mail->SMTPAuth = true;     // enable SMTP authentication 
$mail->SMTPSecure = "ssl";     // sets the prefix to the servier 
$mail->Host  = "smtp.gmail.com";  // sets GMAIL as the SMTP server 
$mail->Port  = 465;     // set the SMTP port for the GMAIL server 
$mail->Username = "[email protected]"; // GMAIL username 
$mail->Password = "xxxxx"; 

$mail->AddReplyTo($email, $name); 


$address = "xxxx.net"; 

$mail->AddAddress($address, "Contact form"); 

$mail->Subject = " Contact Form"; 

Trả lời

2

Something thử là để đảm bảo $email$name bạn biến đang được thông qua trong một cách chính xác (thêm một số báo cáo gỡ lỗi để echo chúng ra). Bạn không chắc chắn nếu bạn đã làm điều đó hoặc nếu bạn đang kiểm tra xem biểu mẫu đã được đăng hay chưa. Nhưng đó sẽ là bước một.

Từ hoạt động của tôi với PHPMailer và GMail, chúng không hoạt động tốt. Thay vào đó, tôi khuyên bạn nên thử kịch bản phpGMailer. Nó hoạt động tốt cho GMail. Xem liệu điều đó có khắc phục được sự cố của bạn hay không.

CẬP NHẬT

Suy nghĩ về nó, tôi không nghĩ rằng GMail cho phép sự thay đổi của địa chỉ ReplyTo trừ khi tài khoản Gmail đã kích hoạt uỷ quyền cho tài khoản đó. Tôi không chắc chắn 100% về điều này, nhưng tôi biết thông qua giao diện web không thể thực hiện được.

Tắt Topic

tôi sẽ tránh sử dụng eregi_replace nó được trích khấu hao. Tôi sẽ sử dụng preg_replace để thay thế. Dưới đây là phiên bản cập nhật để bạn có thể cập nhật mã của mình:

$body    = file_get_contents('phpmailer/contents.html'); 
$body    = preg_replace("~[\]~",'',$body); 
$body    = preg_replace("~<name>~i", $name,$body); 
$body    = preg_replace("~<telephone>~i", $telephone, $body); 
$body    = preg_replace("~<email>~i", $email, $body); 
$body    = preg_replace("~<message>~i", $message, $body); 
+0

cảm ơn Brad, đã tiết kiệm rất nhiều thời gian cho tôi, Hãy nghĩ bạn đúng về gmail trả lời. Nghĩ rằng anh ta sẽ phải sống với nó. – Roscoeh

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