2017-04-10 143 views
-1

我對PHPMailer和SMTP發送郵件有問題。我編寫了這段代碼,但它不適用於我的腳本。我有兩個版本的郵件程序,第一個沒有SMTP,但我需要使用SMTP。用phpmailer通過smtp發送郵件

  1. 沒有SMTP版本。

  2. 第二版增加了PHPMailer的,但是當我按下提交,它不發送任何東西,只能停在裝載:


require_once(dirname(__FILE__).'/../../config.php'); 
require(dirname("/mail/PHPMailerAutoload.php"); // path to the 
PHPMailerAutoload.php file. 

$mail->$fromEmail = NO_REPLY; 
$mail->$headers = "MIME-Version: 1.0" . "\r\n"; 
$mail->$headers .= "Content-Type: text/plain; charset=utf-8" . "\r\n"; 
$mail->$headers .= "From: ".$fromEmail. "\r\n"; 
$mail->$subject = $LANG["WBS_REGM_SUBJECT"]; 
$mail->mail($user_email,$subject,$details,$headers); 

$mail = new PHPMailer(); 
$mail->IsSMTP(); 
$mail->Mailer = "smtp"; 
$mail->Host = "localhost"; 
$mail->Port = "465"; // 8025, 587 and 25 can also be used. Use Port 465 for SSL. 
$mail->SMTPAuth = true; 
$mail->SMTPSecure = 'tls'; 
$mail->Username = "XXXXXXX"; 
$mail->Password = "XXXXXXXXX"; 

echo '<div id="mode">1</div>'; 
    } else { 
     echo '<div id="mode">2</div>'; 
    } 
} else { 
    echo '<div id="mode">3</div>'; 
} 
} 

我將使用SMTP做些什麼?我該如何解決這個錯誤?

+0

在這裏發佈您的實際代碼,但不是圖片的代碼。 –

+0

你得到什麼錯誤? –

+0

您不能在require函數中使用完整的URL,而是使用本地路徑。 – Jer

回答

0

您無法使用網址包含該文件。您可能需要使用本地路徑,而不是再需要它:

require(dirname(__FILE__) . "/path/to/phpmailer/PHPMailerAutoload.php"); 

要得到的當前目錄包含的文件:

<?php 
dirname(__FILE__); 
?> 

例如,如果所謂的「database.init.php腳本database.class.php‘其中規定在同一目錄「,這是從任何地方在文件系統中要包括腳本包含’,你可以使用:

<?php 
include_once(dirname(__FILE__) . '/database.class.php'); 
?> 

參考:http://php.net/manual/en/function.dirname.php

下一步是檢查您的服務器是否配置爲處理SMTP請求。確保您使用的SMTP端口已打開並可供您的程序使用。

+0

嗨!謝謝,但我做到了,但沒有奏效。我已經把這個代碼與usr和沒有url。 –

+0

你得到的錯誤是什麼?在代碼中添加'error_reporting(E_ALL);'來查看錯誤。 – Jer

+0

我需要通過smtp發送消息,但我無法做到。 –

0

是您的代碼在Web服務器上或本地?這可能是一個問題!

$mail->Host = 'localhost' 

例如,如果您沒有後綴電子郵件服務,則可能是本地代碼的問題。

mail() 
+0

我的真實服務器上的腳本不是本地服務器。 –

+0

並返回哪個錯誤? –