2014-01-27 164 views
2

我是Php新手,發現一個Php郵件類來發送電子郵件,但遇到以下錯誤。郵件未發送。郵件錯誤:SMTP連接()失敗

錯誤消息:

Message was not sent.Mailer error: SMTP connect() failed. 

PHP代碼:

<?php 
require("class.phpmailer.php"); 

$mail = new PHPMailer(); 

$mail->IsSMTP(); // telling the class to use SMTP 
$mail->Host  = "smtp.impeccableplus.com"; // SMTP server 

$mail->From  = "[email protected]"; 
$mail->AddAddress("[email protected]"); 

$mail->Subject = "First PHPMailer Message"; 
$mail->Body  = "Hi! \n\n This is my first e-mail sent through PHPMailer."; 
$mail->WordWrap = 50; 

if(!$mail->Send()) { 
echo 'Message was not sent.'; 
echo 'Mailer error: ' . $mail->ErrorInfo; 
} else { 
echo 'Message has been sent.'; 
} 

?> 

感謝。

更新:

我只是改變主機名=本地主機。現在它已成功發送電子郵件,但問題是,它顯示垃圾郵件文件夾中的郵件。爲什麼?

+3

出錯了。 PHPMailer有一個'SMTPDebug'選項。 [調試PHP郵件()和/或PHPMailer](http://stackoverflow.com/q/2896280) –

+0

請檢查您的郵件服務器憑證 –

+0

@Pekka웃我只是更改主機名= localhost。現在它已成功發送電子郵件,但問題是,它顯示垃圾郵件文件夾中的郵件。爲什麼?並顯示發件人姓名= root用戶,爲什麼? – Babu

回答

0

有可能是這樣的幾個原因:

  • 你的SMTP服務器smtp.impeccableplus.com可能被列入黑名單。您可以check if your SMTP server is being blacklisted
  • from address可以被視爲垃圾,特別是如果你使用[email protected]
  • 一些郵件客戶端(如Gmail)不喜歡你正在發送「從」別人的地址,如果電子郵件的事實它真的沒有從該地址發送
  • 和可能20+等原因

您應考慮設立SPFDKIM爲你是從發送電子郵件您的電子郵件地址。請閱讀thisthis。通過設置SPF和DKIM,您基本上可以對電子郵件進行身份驗證,從而顯着改善郵件傳遞。

或者,如果您確實遇到問題,請考慮使用郵件投遞API,例如Sendgrid

相關問題