2014-03-13 97 views
0

發送郵件在PHP中我試圖使用Hotmail的smtp在PHP發送郵件。但我得到錯誤如下:使用Hotmail SMTP

2014-03-13 06:59:01 CLIENT -> SERVER: EHLO site.com 
2014-03-13 06:59:01 CLIENT -> SERVER: AUTH LOGIN 
2014-03-13 06:59:01 SMTP ERROR: AUTH command failed: 504 5.3.3 AUTH mechanism LOGIN not available 
2014-03-13 06:59:01 CLIENT -> SERVER: QUIT SMTP connect() failed. Mailer Error: SMTP connect() failed. 

請任何人都建議我,我做錯了什麼?

我的代碼:

error_reporting(E_STRICT); 
require_once('class.phpmailer.php'); 
include('class.smtp.php'); 
$mail    = new PHPMailer(); //Initialize a new PHPMailer object; 
//$body   = preg_replace("[\]",'',$body); //Replace unwanted characters of the content 
$mail->CharSet ="ISO-8859-1";//Set the character set you need to specify 
$mail->IsSMTP(); // Use SMTP service 
$mail->SMTPDebug = 1;      // Enable debugging for SMTP 
// 1 = errors and messages 
// 2 = messages only 
$mail->From = '[email protected]'; 
$mail->FromName = 'Name'; 
$mail->SMTPAuth = true;     
$mail->SMTPSecure = "SSL";     
$mail->Host  = 'smtp.live.com';  
$mail->Port  = '465';       


$mail->Username = '[email protected]';   //Username of your email account 
$mail->Password = '***';        //Password of your email account 

$mail->SetFrom('[email protected]', 'Name'); 
$mail->AddReplyTo('[email protected]','Name'); 
$mail->Subject = $subject; 
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional, comment out and test 
$mail->MsgHTML($body); 
$address = $to; 
$mail->AddAddress($address, ''); 
//$mail->AddAttachment("images/phpmailer.gif");  // attachment 
//$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment 

//var_dump($body); 
if(!$mail->Send()) { 
    //echo $body; 

    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo "Message sent successfully!"; 
} 

需要幫助。謝謝。

我將如何解決這個問題?任何人的幫助將不勝感激。

+0

好了,該錯誤信息是很清楚的:登錄認證方案不可用(不提供),您必須使用另一個(嘗試純)。 – arkascha

+0

這是什麼意思?我應該如何糾正它? @arkascha –

+0

你有沒有找到解決這個問題的辦法? –

回答

0

的Windows Live Mail使用端口587(啓用TLS)不是標準的465

也就是說西隧不能只用你的主機本地的SMTP服務器?這樣你就不需要授權(或收集發件人密碼),你仍然可以將發件人地址設置爲他們的Hotmail。

$mail->SMTPSecure = "tls";    
+0

我曾與587端口嘗試過,但它提供了以下錯誤:2014-03-13 7時39分55秒\t客戶端 - >服務器:AUTH LOGIN 2014-03-13 7時39分56秒\t SMTP錯誤:AUTH命令失敗:530 5.7.0必須發出STARTTLS命令第一2014-03 -13 07:39:56 \t客戶端 - >服務器:QUIT SMTP連接()失敗。郵件程序錯誤:SMTP連接()失敗。 –

+0

我需要使用HOTMAIL SMTP發送電子郵件。 –

+0

啓用TLS。將用例子編輯答案。 – Merch

1

下面爲我工作:

 

    $mail = new PHPMailer(); 
    $mail->SMTPSecure = 'tls'; 
    $mail->Username = "[email protected]"; 
    $mail->Password = "mypassword"; 
    $mail->AddAddress("[email protected]"); 
    $mail->FromName = "My Name"; 
    $mail->Subject = "My Subject"; 
    $mail->Body = "My Body"; 
    $mail->Host = "smtp.live.com"; 
    $mail->Port = 587; 
    $mail->IsSMTP(); 
    $mail->SMTPAuth = true; 
    $mail->From = $mail->Username; 
    $mail->Send(); 

+0

當我使用這個我得到一個錯誤「致命錯誤:類‘PHPMailer的’用C未找到:\ WAMP \ www」的可以告訴我在想念着什麼。試圖從一個在PHP開發的網站發送電子郵件給客戶。第一次在php中使用電子郵件 –

+0

您需要包含phpMailer類。 –