phpmailer 与交换和没有 SSL 或 TLS
phpmailer with exchange and no SSL or TLS
过去 2 天我一直在处理这个问题,但我尝试的所有方法仍然无法正常工作。我正在尝试使用 php 向交换服务器进行身份验证,以便我可以发送到外部域。
如果我禁用身份验证,我可以毫无问题地进行内部发送。
这是错误
SMTP -> FROM SERVER:220 N-CAS1-13.company.domain Microsoft ESMTP MAIL Service ready at Sat, 20 Feb 2016 16:16:05 -0500
SMTP -> FROM SERVER: 250-N-CAS1-13.company.domain Hello [10.10.10.31] 250-SIZE 37748736 250-PIPELINING 250-DSN 250-ENHANCEDSTATUSCODES 250-STARTTLS 250-X- ANONYMOUSTLS 250-AUTH NTLM 250-X-EXPS GSSAPI NTLM 250-8BITMIME 250-BINARYMIME 250-CHUNKING 250 XRDST
SMTP -> ERROR: AUTH not accepted from server: 504 5.7.4 Unrecognized authentication type
SMTP -> FROM SERVER:250 2.0.0 Resetting
SMTP Error: Could not authenticate.
这是php邮件代码
require "phpmailer/class.phpmailer.php"; //include phpmailer class
//require "PHPMailer-5.2.14/PHPMailer-5.2.14/PHPMailerAutoload.php";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPDebug = 2;
$mail->SMTPSecure = false;
$mail->Host = "10.10.10.38";
$mail->Port = 25;
$mail->Username = "username";
$mail->Password = "cGhpbGltaWVzMjM2OTY5";
$mail->From = "name@companydomain.com";
$mail->FromName = "name";
$mail->SetFrom("name@companydomain.com", "name");
$mail->Subject = $_POST['company'].": (Time Sensitive)";
$mail->AddEmbeddedImage('trans2.png', 'logo', 'trans2.png ');
$mail->AddAttachment("docs/install.xlsx");
$mail->MsgHTML($message1.$message2.$message3);
// Send To
$mail->AddAddress($_POST['emailid'], ""); // Where to send it - Recipient
$mail->AddCC("person@companydomain.com");
$result = $mail->Send(); // Send!
$message = $result ? 'Successfully Sent!' : 'Sending Failed!';
unset($mail);
}
我尝试了不同版本的 phpmailer,我尝试用 base64 编码密码,我只尝试了用户名,我尝试了电子邮件作为用户名...仍然没有
Exchange 服务器在端口 25 上,不需要 SSL 或 TLS。
SMTP -> FROM SERVER: ... 250-AUTH NTLM
服务器只需要 NTLM 身份验证,而不是 LOGIN、PLAIN 或 DIGEST-MD5,它们只能与用户名和密码一起使用。您还需要 NTLM 领域和您的工作站。
不幸的是,没有太多关于它的文档,但您可以查看 http://www.phpclasses.org/browse/file/31.html 并寻找 NTLM 以了解如何执行此操作。
过去 2 天我一直在处理这个问题,但我尝试的所有方法仍然无法正常工作。我正在尝试使用 php 向交换服务器进行身份验证,以便我可以发送到外部域。
如果我禁用身份验证,我可以毫无问题地进行内部发送。
这是错误
SMTP -> FROM SERVER:220 N-CAS1-13.company.domain Microsoft ESMTP MAIL Service ready at Sat, 20 Feb 2016 16:16:05 -0500
SMTP -> FROM SERVER: 250-N-CAS1-13.company.domain Hello [10.10.10.31] 250-SIZE 37748736 250-PIPELINING 250-DSN 250-ENHANCEDSTATUSCODES 250-STARTTLS 250-X- ANONYMOUSTLS 250-AUTH NTLM 250-X-EXPS GSSAPI NTLM 250-8BITMIME 250-BINARYMIME 250-CHUNKING 250 XRDST
SMTP -> ERROR: AUTH not accepted from server: 504 5.7.4 Unrecognized authentication type
SMTP -> FROM SERVER:250 2.0.0 Resetting
SMTP Error: Could not authenticate.
这是php邮件代码
require "phpmailer/class.phpmailer.php"; //include phpmailer class
//require "PHPMailer-5.2.14/PHPMailer-5.2.14/PHPMailerAutoload.php";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPDebug = 2;
$mail->SMTPSecure = false;
$mail->Host = "10.10.10.38";
$mail->Port = 25;
$mail->Username = "username";
$mail->Password = "cGhpbGltaWVzMjM2OTY5";
$mail->From = "name@companydomain.com";
$mail->FromName = "name";
$mail->SetFrom("name@companydomain.com", "name");
$mail->Subject = $_POST['company'].": (Time Sensitive)";
$mail->AddEmbeddedImage('trans2.png', 'logo', 'trans2.png ');
$mail->AddAttachment("docs/install.xlsx");
$mail->MsgHTML($message1.$message2.$message3);
// Send To
$mail->AddAddress($_POST['emailid'], ""); // Where to send it - Recipient
$mail->AddCC("person@companydomain.com");
$result = $mail->Send(); // Send!
$message = $result ? 'Successfully Sent!' : 'Sending Failed!';
unset($mail);
}
我尝试了不同版本的 phpmailer,我尝试用 base64 编码密码,我只尝试了用户名,我尝试了电子邮件作为用户名...仍然没有
Exchange 服务器在端口 25 上,不需要 SSL 或 TLS。
SMTP -> FROM SERVER: ... 250-AUTH NTLM
服务器只需要 NTLM 身份验证,而不是 LOGIN、PLAIN 或 DIGEST-MD5,它们只能与用户名和密码一起使用。您还需要 NTLM 领域和您的工作站。
不幸的是,没有太多关于它的文档,但您可以查看 http://www.phpclasses.org/browse/file/31.html 并寻找 NTLM 以了解如何执行此操作。