2012-11-07 8 views
5

Tôi cố gắng để gửi một email trong sau cách -PHPMailer lớp trả về true nhưng email không được giao

from : [email protected] 
reply-to : [email protected] 
to : [email protected] 
cc : [email protected] 

email của tôi là nhận được gửi đến địa chỉ nêu tại CC (Nếu tôi thay thế các email đến và đi cc , sau đó email được gửi đến địa chỉ được đề cập đến)

Vì một số lý do, email không được gửi đến địa chỉ [email protected] Nếu tôi gửi email theo cách thủ công đến địa chỉ này bằng cách sử dụng outlook hoặc gmail, thì email thực sự được gửi. Làm thế nào tôi có thể gỡ lỗi vấn đề này?

Tôi cũng đã kiểm tra thư mục spam/rác, không có email nào ở đó. Tôi đã thử sử dụng hàm php mail() cũng như lớp phpmailer. Cả hai đều trả về TRUE. Lý do có thể là gì? Hãy giúp tôi.

$mail->From = "[email protected]"; 
$mail->AddReplyTo("[email protected]"); 
$mail->AddAddress("[email protected]"); 
$mail->AddCC("[email protected]"); 
$mail->Subject = $subject; 
$mail->Body = $message; 

if(! $mail->Send()) { 
    echo "Message was not sent"; 
    echo "Mailer Error: " . $mail->ErrorInfo; 
    exit; 
} 
+1

Vui lòng cung cấp mã của bạn mà bạn đã thử – Elby

+1

AFAIK, 'mail() 'của PHP không có cơ chế gỡ lỗi cứng. Vì vậy, bạn không thể biết chắc chắn vấn đề nằm ở đâu. – asprin

+0

Có. Đó là lý do tại sao, tôi đã sử dụng lớp phpmailer. Nó cũng trả về sự thật. Không ném bất kỳ lỗi nào. Tôi đã thêm mã vào câu hỏi ở trên. –

Trả lời

2
Try to set cofigurations beffore send (Gmail config): 



    $mail = new Mailer(); 
    $mail->SMTPDebug = true; 
    $mail->SMTPAuth = true; 
    $mail->CharSet = 'utf-8'; 
    $mail->SMTPSecure = 'ssl'; 
    $mail->Host = 'smtp.gmail.com'; 
    $mail->Port = '465'; 
    $mail->Username = 'your login here'; 
    $mail->Password = 'your password here'; 
    $mail->Mailer = 'smtp'; 
    $mail->From = 'form mail address'; 
    $mail->FromName = 'from name'; 
    $mail->Sender = 'form mail'; 
    $mail->Priority = 3; 

    $mail->AddAddress('mail', 'admin name'); 
    $mail->AddReplyTo('replay to', 'admin name'); 
    $mail->Subject = 'subject'; 
    $mail->Body = 'some HTML message here'; 
    $mail->IsHTML(true); 
    if(!$this->Send()) { 
     print_r('error: '. $mail->ErrorInfo); // Show errors 
} 
    $mail->ClearAddresses(); 
    $mail->ClearAttachments(); 
+0

Có gì với tất cả các hằng số? Bạn có thể chỉ định giá trị trực tiếp, bạn biết không? Không cần hằng số. Ngoài ra, '$ mail' không phải là một đối tượng khi bạn cố gắng gán' $ mail-> IsSMTP(); '. –

+0

Sory. Thêm một số thay đổi, bây giờ không có hằng số – RDK

0

kiểm tra máy chủ của bạn là to để gửi email cùng xảy ra với tôi trong trường hợp của tôi, tôi sử dụng Plesk và đối với một số lý do tôi đã không thể gửi và email cho đến khi tôi nhận và gửi email cho tôi đổi này cấu hình và kiểm tra làm việc cũng là bạn sử dụng gửi thư o qmail nếu qmail bạn phải báo cho php mail

0

Điều này cũng có thể xảy ra nếu bạn đang gửi email từ một địa chỉ email, nhưng xác thực nó bằng một tên miền khác (hoặc tên miền)

Đặt $ mail.setFrom() vào cùng một email mà bạn đang xác thực.