我的邮件发送代码:
$mail = new PHPMailer(true);
$mail->IsSMTP();
try {
$mail->Host = 192.168.205.19;
$mail->Port = 25;
$mail->SMTPDebug = 2;
$mail->SMTPSecure = "tls";
$mail->SMTPAuth = true;
$mail->Username = "mymailadress@mysite.com";
$mail->Password = "mypassword";
$mail->From = "mymailaddress@mysite.com";
$mail->FromName = "My Mail Address";
$mail->SetFrom("mymailaddress@mysite.cm", "My Mail Address");
$mail->AddAddress('toaddress@mysite.com');
$mail->Subject = "Test for subject";
$mail->MsgHTML("Test my mail body");
if ($mail->Send()) {
$result = 1;
} else {
$result = "Error: " . $mail->ErrorInfo;
}
} catch (phpmailerException $e) {
$result = $e->errorMessage();
} catch (Exception $e) {
$result = $e->getMessage();
}
return $result;
结果
SMTP -> FROM SERVER:220 evo.callpex.int Microsoft ESMTP MAIL Service ready at Tue, 27 Nov 2012 17:45:24 +0200
SMTP -> ERROR: Password not accepted from server: 535 5.7.3 Authentication unsuccessful
我正在使用PHPMailer类发送邮件。和SMTP。我正在连接到Exchange邮件服务器。但我有这个错误。
为什么?
谢谢!
答案 0 :(得分:1)
您可能正在使用管理员凭据。不知道为什么,但即使我无法使用具有管理员凭据的PHPMailer发送邮件(可能有一些适用于管理员详细信息的安全措施)。尝试提供任何其他用户凭据,它将工作。 它适用于我的其他用户凭据。
并且,在您的代码中
$mail->From = "mymailaddress@mysite.com";
$mail->FromName = "My Mail Address";
$mail->SetFrom("mymailaddress@mysite.cm", "My Mail Address");
$ mail-> SetFrom(“mailid”,“name”)本身将设置From& FromName值。你不需要再设置它。
答案 1 :(得分:0)
我不知道它是否已排序,但是交换服务器通常不支持SMTP。我相信可以启用SMTP或创建SMTP连接器。
答案 2 :(得分:0)
我认为你的变量 $mail->Host
应该是一个像 $mail->Host = '192.168.205.19';
这样的字符串,而不是没有引号。