2016-02-03 466 views
-1

我試圖用PHPMailer創建電子郵件服務,IM接收和身份驗證錯誤以及用戶名和密碼都是正確的。PHPMailer - 身份驗證問題

這是我的代碼:

<?php 
require 'PHPMailer/PHPMailerAutoload.php'; 
$mail = new PHPMailer; 
//Tell PHPMailer to use SMTP 
$mail->isSMTP(); 
$mail->SMTPDebug = 1; 
$mail->Debugoutput = 'html'; 

$mail->Host = 'smtp.gmail.com'; 
$mail->Port = 587; 
$mail->SMTPSecure = 'tls'; 
$mail->SMTPAuth = true; 
$mail->Username = 「[email protected]"; 
$mail->Password = 「my gmail password」; 
//Set who the message is to be sent from 
$mail->setFrom(‘[email protected]', 'Nicolas El Mir'); 
//Set who the message is to be sent to 
$mail->addAddress('[email protected]', 'Nicolas Mir'); 
//Set the subject line 
$mail->Subject = 'PHPMailer GMail SMTP test'; 
$mail->Body = 'This is a plain-text message body'; 
$mail->AltBody = 'This is a plain-text message body'; 
//send the message, check for errors 
if (!$mail->send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
    echo "Message sent!"; 
} 
?> 

感謝您的幫助!

+0

請提供您看到的錯誤消息。 –

+2

捲曲的引號正在查殺你的腳本 –

回答

-1

試試這個副本libeay32.dll和ssleay32.dll到windows/system2。這兩個文件你會在php文件夾(主文件夾)中找到。有了這個,你可以啓用PHP擴展。即捲曲等。如果這不起作用,請提及您的錯誤消息。或查看一些YouTube視頻!這將是合適的。謝謝。

+2

你確定你是在正確的問題? DLL文件? –

+0

可能是。這兩個擴展有助於在PHP中啓用curl,gd和其他擴展。 –

+0

我沒有明白,即時通訊使用mac – user3316092

3

你的問題,從這裏開始:

$mail->Username = 「[email protected]"; 
$mail->Password = 「my gmail password」; 
//Set who the message is to be sent from 
$mail->setFrom(‘[email protected]', 'Nicolas El Mir'); 

你看那些花/智能引號? 「 」 ‘

  • 「myemail...
  • 「my gmail password」
  • ‘example...

他們窒息腳本。

$mail->Username = "[email protected]"; 
$mail->Password = "my gmail password"; 
//Set who the message is to be sent from 
$mail->setFrom('[email protected]', 'Nicolas El Mir'); 

假如你的錯誤報告設置爲捕獲/顯示器,它會告訴你這件事。

我真的希望那是你的實際代碼太多,而不僅僅是一個壞字處理器粘貼。

另外,請確保您已安裝了Web服務器/ PHP並且已啓用郵件。

error reporting添加到您的文件的頂部,這將有助於發現錯誤。

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// Then the rest of your code 

旁註:顯示錯誤應該只在分期完成,並且從不生產。


另外,從這個答案https://stackoverflow.com/a/16048485/拉這可能是你相同的問題,端口號等

$mail = new PHPMailer(); // create a new object 
$mail->IsSMTP(); // enable SMTP 
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only 
$mail->SMTPAuth = true; // authentication enabled 
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail 
$mail->Host = "smtp.gmail.com"; 
$mail->Port = 465; // or 587 
$mail->IsHTML(true); 
$mail->Username = "[email protected]"; 
$mail->Password = "password"; 
$mail->SetFrom("[email protected]"); 
$mail->Subject = "Test"; 
$mail->Body = "hello"; 
$mail->AddAddress("[email protected]"); 

if(!$mail->Send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
    echo "Message has been sent"; 
} 

這上面的代碼已經過測試,併爲我工作。

這可能是因爲你需要$mail->SMTPSecure = 'ssl';

另外,還要確保你沒有兩步驗證開啓該帳戶可能會導致問題也。

更新

你可以嘗試改變$ MAIL-> SMTP到:

$mail->SMTPSecure = 'tls'; 

這是值得注意的是,某些SMTP服務器阻塞連接。 某些SMTP服務器不支持SSL(或TLS)連接。

,並在這個問題另一個答案https://stackoverflow.com/a/31194724/拉:

的解決方案是,我不得不刪除這條線:

$mail->isSMTP(); 
+0

另請參閱此鏈接http://www.sitepoint.com/sending-emails-php-phpmailer/ –