Php邮件程序错误:SMTP错误

Php邮件程序错误:SMTP错误,php,Php,我正在使用php邮件类。我得到: SMTP错误:以下收件人失败:s_deshmukh88@hotmail.com $mail = new phpMailer(); $body = "Hello, this is a test mail."; //$body = preg_replace('/\\\\/','', $body); //Strip backslashes $mail->IsSMTP();

我正在使用php邮件类。我得到: SMTP错误:以下收件人失败:s_deshmukh88@hotmail.com

$mail = new phpMailer();
$body             = "Hello, this is a test mail.";
//$body             = preg_replace('/\\\\/','', $body); //Strip backslashes

$mail->IsSMTP();                           // tell the class to use SMTP
//$mail->SMTPAuth   = true;                  // enable SMTP authentication
//$mail->Port       = 25;                    // set the SMTP server port
$mail->Host       = "localhost";           // SMTP server
$mail->Username   = "localhost";     // SMTP server username
$mail->Password   = "password";            // SMTP server password
//$mail->SMTPSecure   = "tls";
//$mail->IsSendmail();  // tell the class to use Sendmail

$mail->AddReplyTo("name@domain.com","First Last");

$mail->From       = "name@domain.com";
$mail->FromName   = "First Last";

$to = "s_deshmukh88@hotmail.com";

$mail->AddAddress($to);

$mail->Subject  = "First PHPMailer Message";

$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->WordWrap   = 80; // set word wrap

$mail->MsgHTML($body);

$mail->IsHTML(true); // send as HTML

if($mail->Send()){
    echo 'Message has been sent.';
    }

原因是什么?

我在使用经过身份验证的SMTP时遇到此问题。当我使用xampp在家测试邮件,但连接到(共享)服务器时,电子邮件发送给用户没有问题。当我在主机服务器上用PHP尝试同样的方法时,电子邮件会发送到我帐户上的地址,但不会发送到外部地址。如果我的地址是fred@bloggs.com我给你发了一封电子邮件fred@bloggs.com,但如果我把它寄到jim@smith.com,它失败了)解决方案是在我的本地pc上工作时使用完整的主机地址,即在服务器上使用$mail->host=“mail.fred.bloggs.com”,但使用$mail->host=“localhost”。可能看起来有点反常,但它确实有效。

我在使用经过身份验证的SMTP时遇到了这个问题。当我使用xampp在家测试邮件,但连接到(共享)服务器时,电子邮件发送给用户没有问题。当我在主机服务器上用PHP尝试同样的方法时,电子邮件会发送到我帐户上的地址,但不会发送到外部地址。如果我的地址是fred@bloggs.com我给你发了一封电子邮件fred@bloggs.com,但如果我把它寄到jim@smith.com,它失败了)解决方案是在我的本地pc上工作时使用完整的主机地址,即在服务器上使用$mail->host=“mail.fred.bloggs.com”,但使用$mail->host=“localhost”。可能看起来有悖常理,但它确实有效。

我刚刚遇到了这个问题,就我而言,我认为是网络主机的邮件服务器不允许发件人地址使用不匹配的域名。例如,我使用mail.mydomain.com发送邮件,但我希望发件人地址是test@test.com
当我从地址切换到test@mydomain.com,然后电子邮件被发送。

我刚刚遇到这个问题,就我而言,我认为是网络主机的邮件服务器不允许发件人地址使用不匹配的域名。例如,我使用mail.mydomain.com发送邮件,但我希望发件人地址是test@test.com
当我从地址切换到test@mydomain.com,然后电子邮件被发送。

只需将SMTPAuth设置为false,将Host设置为“localhost”


谢谢!!:)

只需将SMTPAuth设置为false,将Host设置为“localhost”


谢谢!!:)

你是从函数中得到这个返回值,还是从目标域的邮局主管通过电子邮件发送给你?@slugonamission考虑到上面的代码中没有打印错误消息,我猜这是来自目标域的反弹电子邮件…不,不,这个错误我是通过phpmailer类得到的。因此它不是来自目标域。这是一个错误,因为SMTP没有正确配置吗?我看到一个链接,其中提到需要openSSL。我安装了openSSL并尝试生成该链接中提到的证书,但没有成功。出现错误
在动态链接库LIBEAY32.dll中找不到序号947
。到目前为止,我无法使用phpmailerd发送邮件。您是从函数中获取此值作为返回值,还是通过电子邮件从目标域的邮局主管处发送给您?@slugonamission考虑到上述代码中没有打印错误消息,我猜这是一封来自目标域的反弹电子邮件…不,不…这个错误我是通过phpmailer类得到的。因此它不是来自目标域。这是一个错误,因为SMTP没有正确配置吗?我看到一个链接,其中提到需要openSSL。我安装了openSSL并尝试生成该链接中提到的证书,但没有成功。出现错误
在动态链接库LIBEAY32.dll中找不到序号947
。到目前为止,我无法使用phpmailerb发送邮件。通过进行上述两项更改,我的服务器可以发送电子邮件。感谢@user182925通过以上两项更改,我的服务器能够发送电子邮件。谢谢@user182925I将邮件服务器更改为“localhost”,问题解决了。我将邮件服务器更改为“localhost”,问题解决了。