2012-11-07 4 views
5

Я пытаюсь отправить по электронной почте в следующем образом -PHPMailer класс возвращает истину, но электронная почта не доставляется

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

Моя электронная почта становится доставляется по адресу, указанному в СС (Если я заменить электронные письма и куб.см , тогда адрес электронной почты отправляется по указанному адресу)

По какой-то причине письмо не доставляется по адресу [email protected] Если я отправлю электронное письмо вручную по этому адресу с помощью Outlook или Gmail, тогда на самом деле будет отправлено письмо. Как я могу отладить эту проблему?

Я также проверил каталоги спама и нежелательной почты, никаких электронных писем там нет. Я попытался использовать функцию php mail(), а также класс phpmailer. Оба они возвращают TRUE. В чем причина? Пожалуйста помоги.

$mail->From = "[email protected]"; 
$mail->AddReplyTo("[email protected]"); 
$mail->AddAddress("[email protected]n2.com"); 
$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

Пожалуйста, отдайте ваш код, который вы пробовали – Elby

+1

AFAIK, PHP 'mail()' не имеет надежного механизма отладки. Поэтому вы не можете точно знать, где проблема. – asprin

+0

Да. Вот почему я использовал класс phpmailer. Он также возвращает true. Не вызывает никаких ошибок. Я добавил код к вопросу выше. –

ответ

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

Что со всеми константами? Вы можете просто назначить значения напрямую, вы знаете? Нет необходимости в константах. Кроме того, '$ mail' не является объектом, когда вы пытаетесь назначить' $ mail-> IsSMTP(); '. –

+0

Sory. Добавьте некоторые изменения, теперь без констант – RDK

0

проверьте, что ваш сервер вслух, чтобы отправить электронную почту тот же случилось со мной в моем случае я использовал Plesk и по какой-то причине я не смог отправить и по электронной почте, пока я не получу и по электронной почте я изменить конфигурация и проверенная работа также вы используете отправлять почту o qmail, если qmail вы должны сообщить php mailer

0

Это также может произойти, если вы отправляете электронное письмо с одного адреса электронной почты, но аутентифицируете его по другому (или домену)

Установите $ mail.setFrom() на тот же адрес электронной почты, для которого вы находитесь , аутентифицирующий.

Смежные вопросы