PHPmailer类返回true但不传递电子邮件

时间:2012-11-07 11:05:40

标签: phpmailer php

我正在尝试以下列方式发送电子邮件 -

from : xyz@domain1.com  
reply-to : xyz@domain1.com  
to : abc@domain2.com  
cc : abc@domain3.com  

我的电子邮件已发送到CC中提到的地址(如果我将电子邮件替换为cc和cc,则会将电子邮件发送到提到的地址)

出于某种原因,电子邮件未发送到地址abc@domain2.com。如果我使用outlook或gmail手动将电子邮件发送到此地址,则实际上会发送电子邮件。我该如何调试此问题?

我也查了垃圾邮件/垃圾邮件目录,那边没有电子邮件。我尝试使用php mail()函数以及phpmailer类。它们都返回TRUE。可能是什么原因?请帮忙。

$mail->From = "xyz@domain1.com";   
$mail->AddReplyTo("xyz@domain1.com");  
$mail->AddAddress("abc@domain2.com");  
$mail->AddCC("abc@domain3.com");  
$mail->Subject = $subject;  
$mail->Body = $message;  

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

3 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

检查你的服务器是否大声发送电子邮件同样发生在我的情况下,我使用了plesk,由于某种原因我无法发送和发送电子邮件,直到我收到并发送电子邮件我更改此配置和工作检查也是你使用发送邮件o qmail如果是qmail你必须告诉php邮件

答案 2 :(得分:0)

如果您从一个电子邮件地址发送电子邮件,但是针对另一个(或域)进行身份验证,也会发生这种情况

  

将$ mail.setFrom()设置为您所在的同一封电子邮件   认证反对。