2013-11-05 30 views
8

不知道爲什麼我得到這個致命的php錯誤,因爲我所有的文件和類都安裝正確。任何幫助將不勝感激。PHP郵件程序致命錯誤:找不到類'SMTP'

contact.php是在這裏:

<? 
     session_start(); 
     if (!isset($_SERVER['DOCUMENT_ROOT'])) { 
      $_SERVER['DOCUMENT_ROOT'] = substr($_SERVER['SCRIPT_FILENAME'], 0, 0-strlen($_SERVER['PHP_SELF'])); 
     } 

     if(strpos($_SERVER["SERVER_SOFTWARE"],"IIS") > 0) { 
      define("PATH_SLASH","\\"); 
      define("PATH_SEPARATOR",";"); 
     } 
     else { 
      define("PATH_SLASH","/"); 
      define("PATH_SEPARATOR",":"); 
     } 

     define("CONFIG",$_SERVER['DOCUMENT_ROOT'] . PATH_SLASH . "config" . PATH_SLASH . "config.xml"); 
     require "classes/clsconfig.inc.php"; 
     require "classes/class.phpmailer.php"; 

    $config = new gxconfig(); 

    $email = true; 

    $callornot = ""; 
     if (isset($_POST["submit"])) { 
      if(isset($_POST['callme'])){ 
       $callornot = "yes"; 
      } 
      else{ 
       $callornot = "No"; 
      } 

      $message_participant = "<h2>Comments from the website</h2> 
      Name : {$_POST['name']}<br/> 
      Company : {$_POST['company']}<br/> 
      Industry : {$_POST['industry']}<br/> 
      Email : {$_POST['email']}<br/> 
      Telephone : {$_POST['phone']}<br/> 
      Wants a call : ". $callornot ."<br/> 
      Message : {$_POST['comment']}<br/>"; 
      $svrcourriel = new PHPMailer(); 
      $svrcourriel->Mailer = "smtp"; 
      $svrcourriel->Host = $config->smtp; 
      $svrcourriel->From = $_POST['email']; 
      $svrcourriel->Port = 25; 
      $svrcourriel->IsHTML(true); 
      $svrcourriel->FromName = $_POST['name']; 
      $svrcourriel->Subject = "Comments"; 
      $svrcourriel->Body = $message_participant; 

      $svrcourriel->AddAddress("[email protected]","Website"); 

      $svrcourriel->Send(); 

      if($svrcourriel->Send()){ 
       $message = "Message Sent<br />Thank you!<br />The Administration"; 
       $email = false; 
      } 
      else{ 
       $message = "connection error"; 
      } 


     } 

    ?> 
    <meta name="gmapkey" content="ABQIAAAA1RcXJTFbfpMdioOkhlE_ZxTJuH3LtUz3ux7bUwdjaRGyO6SO_hQPu8VtGAAEQbfqN_dX85CzKFIVLg" /> 

    <script type="text/javascript" src="js/gmapez-2.5.js"></script> 
    <table width="971" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
     <td align="right"> 
      <table width="971" border="0" cellspacing="0" cellpadding="0"> 
      <tr> 
       <td width="11"><img src="images/misc/cnr-bcl2.jpg" width="11" height="41" alt="" /></td> 
       <td align="left" style="background: url('images/backgrounds/bc.jpg') repeat-x top left;padding: 10px;"> 
        <span style="color: #FFFFFF;font-family: arial; font-size: 15px;font-weight: bold;"> 
         Home <span style="color: #c0d3e9;">&gt;&gt;</span> 
         Contact Us 
        </span> 
       </td> 
       <td width="11"><img src="images/misc/cnr-bcr2.jpg" width="11" height="41" alt="" /></td> 
      </tr> 
      </table> 
      <table width="971" border="0" cellspacing="0" cellpadding="0"> 
      <tr> 
       <td width="11"><img src="images/misc/shad-botleft2.jpg" width="11" height="12" alt="" /></td> 
       <td width="100%" style="background: url('images/misc/shad-bg2.jpg') repeat-x top left;"></td> 
       <td width="11"><img src="images/misc/shad-botright2.jpg" width="11" height="12" alt="" /></td> 
      </tr> 
      </table> 
     </td> 
    </tr> 
    <tr> 
     <td width="971" align="center"> 

     </div> 
      <div style="box-shadow: 7px 7px 7px #888;padding: 13px;width: 931px;background-color: #d8e1e9;color: #373737;font-family: arial;font-size: 12px;text-align: left;" class="with_corners"> 

       <p style="font-size: 16px;font-weight: bold;">Thank you for your interest in LCRISQ.</p><br /> 
       <a class="standard" href="mailto:[email protected]">[email protected]</a><br /> 

          Tel: 310.406.5684 <br /> 
          Fax: 310.988.2913 <br /> <br/> 

       Aberdeen, United Kingdom ABIOITY office<br /> 
       Tel: +44 (0) 1583452246<br /> <br/> 

          Albuquerque, New Mexico 87123 Office <br/> 
          Tel: 1 (505) 301-6554 <br /> 


       <div id="theModal"> 
    <div class="GMapEZ" style="width: 570px; height: 470px;"> 
     <a href="https://maps.google.com/maps?q=abq+nm&hl=en&ll=35.110922,-106.609955&spn=0.452732,0.617294&sll=35.09864,-106.570284&sspn=0.452801,0.617294&hnear=Albuquerque,+Bernalillo,+New+Mexico&t=m&z=11"> 
     </a> 
     <a href="https://maps.google.com/maps?client=ubuntu&amp;channel=cs&amp;q=aberdeen+uk&amp;ie=UTF8&amp;hq=&amp;hnear=Aberdeen,+Aberdeen+City,+United+Kingdom&amp;t=m&amp;z=12&amp;iwloc=A&amp;ll=57.149717,-2.094278&amp;source=embed"> 
     </a> 
    </div> 
     </div> 



     <div class="colLeftOnly"><h2>E-mail us:</h2></div> 
        <form id='form' action='contact.php' method='post' name="form" onsubmit="javascript: return performCheck('form', rules, 'innerHtml');" > 
         <div id='errorsDiv'></div> 
         Name*<br /> 
         <input class='input' name='name' type='text' value='' maxlength='40' />&#160;<br />&#160;<br /> 
         Company<br /> 
         <input class='input' name='company' type='text' value='' maxlength='40' />&#160;<br />&#160;<br /> 
         Industry<br /> 
         <select name='industry' size="1"> 
          <option value="0">Select:</option> 
          <option value="Advertising">Advertising</option> 
          <option value="Aerospace">Aerospace</option> 
          <option value="Automotive">Automotive</option> 
          <option value="Aviation">Aviation</option> 
          <option value="Banking/Financial">Banking/Financial</option> 
          <option value="Building Materials">Building Materials</option> 
          <option value="Chemicals">Chemicals</option> 
          <option value="Communications">Communications</option> 
          <option value="Computers/Data/Software">Computers/Data/Software</option> 
          <option value="Construction">Construction</option> 
          <option value="Consumer Products">Consumer Products</option> 
          <option value="Defense">Defense</option> 
          <option value="Education">Education</option> 
          <option value="Electronics">Electronics</option> 
          <option value="Energy">Energy</option> 
          <option value="Engineering">Engineering</option> 
          <option value="Entertainment">Entertainment</option> 
          <option value="Finance">Finance</option> 
          <option value="Food &#38; Beverage">Food &#38; Beverage</option> 
          <option value="Fire &#38; Rescue Service">Fire &#38; Rescue Service</option> 
          <option value="Gas">Gas</option> 
          <option value="Government - Federal Civilian">Government - Federal Civilian</option> 
          <option value="Government - Federal Military">Government - Federal Military</option> 
          <option value="Government - State/Provincial">Government - State/Provincial</option> 
          <option value="Government - Local">Government - Local</option> 
          <option value="Healthcare">Healthcare</option> 
          <option value="Higher Education">Higher Education</option> 
          <option value="Hospitality &#38; Leisure">Hospitality &#38; Leisure</option> 
          <option value="Industrial Machinery">Industrial Machinery</option> 
          <option value="Insurance">Insurance</option> 
          <option value="IT">IT</option> 
          <option value="Legal">Legal</option> 
          <option value="Manufacturing">Manufacturing</option> 
          <option value="Media">Media</option> 
          <option value="Non Profit">Non Profit</option> 
          <option value="Oil">Oil</option> 
          <option value="Pharmaceuticals">Pharmaceuticals</option> 
          <option value="Postal Service">Postal Service</option> 
          <option value="Public Sector">Public Sector</option> 
          <option value="Professional Services">Professional Services</option> 
          <option value="Real Estate">Real Estate</option> 
          <option value="Research">Research</option> 
          <option value="Retail/Wholesale">Retail/Wholesale</option> 
          <option value="Services">Services</option> 
          <option value="Shipping">Shipping</option> 
          <option value="Telecommunications">Telecommunications</option> 
          <option value="Transportation">Transportation</option> 
          <option value="Travel">Travel</option> 
          <option value="Utilities">Utilities</option> 
          <option value="Waste">Waste</option> 
          <option value="Oil & Gas">Oil & Gas</option> 
          <option value="Other">Other</option> 
         </select>&#160;<br />&#160;<br /> 
         Phone*<br /> 
         <input class='input' name='phone' type='text' value='' maxlength='40' />&#160;<br />&#160;<br /> 
         Email*<br /> 
         <input class='input' name='email' type='text' value='' maxlength='40' />&#160;<br />&#160;<br /> 
         Comment<br /> 
         <textarea class='input' name='comment' rows='5' cols='1'></textarea>&#160;<br />&#160;<br /> 
         <input name='callme' type='checkbox' value='' /> I would like to have someone call me.&#160;<br />&#160;<br /> 
         <input name='submit' type='submit' value='submit' />&#160;<br />&#160;<br /> 
         *Required information. All submitted information will be considered confidential. 
        </form> 
      </div> 
      <br /> 

這裏是class.phpmailer是在這裏:http://pastebin.com/KsAwgd1c

這裏是clsconfig.inc.php:

<?php 
    class gxconfig { 
     public $smtp; 
     public $courriel; 

     function __construct(){ 
      $config = new DOMDocument("1.0","utf-8"); 
      $config->load(CONFIG); 
      $xmlPath = new DomXpath($config); 

      $result = $xmlPath->query("/configuration/courriel/serveur"); 
      $this->smtp = $result->item(0)->nodeValue; 

      $result = $xmlPath->query("/configuration/courriel/dossier"); 
      $this->courriel = $_SERVER['DOCUMENT_ROOT'] . str_replace("/",PATH_SLASH,$result->item(0)->nodeValue); 

     } 
    } 
?> 
+0

不是一個堅持己見的人,但最好張貼相關的代碼,所有的HTML和XML的東西僅僅是噪音。 – Phix

+0

PHPMailer類顯然不包含/需要SMTP類,它也是PHPMailer項目的一部分。也許它期望定義一個SPL自動加載器,我不知道。但無論如何,在PHPMailer類將要加載之前,您將需要SMTP類,並且需要require_once()。也許別人也是。 –

+2

SMTP類https://github.com/Synchro/PHPMailer/blob/master/class.smtp。php –

回答

30

你不應該要求class.phpmailer.php

替換: require "classes/class.phpmailer.php";require "PHPMailerAutoload.php";它會工作得很好。

+0

嗨@adobe:仍然保持錯誤..經過與您的答案試用.. – pcs

+0

@saina然後在你的代碼中有其他東西是錯誤的,無法幫助你沒有看到它... – Abbe

+0

感謝您的回覆。這裏是鏈接http://stackoverflow.com/questions/30526637/php-mailer-could-not-send-email – pcs

-2

試試這個

include "class.smtp.php"; 
2

您必須class.smtp.php副本的文件夾中。
您不需要將它與PHP包含在您的文件中。
如果你不這樣做,它會拋出「致命的錯誤:class'smtp'在1168行class.phpmailer.php中找不到」。
請確保你的文件需要這些:
需要'PHPMailerAutoload.php';
需要'class.phpmailer.php';

0

你在文件夾中有文件class.smtp.php

在我的情況這是我的solucion!

將此file複製並粘貼到您的文件夾中。

好運

+0

是的,這就是要點。 –

0

我需要一個快速的腳本來手動測試中的Joomla &一個phpmailer環境中使用下列內容:

<?php 
include '/path/to/class.phpmailer.php'; 
include '/path/to/vendor/autoload.php'; 

autoload.phpComposer &處理php依賴性。

我也使用了PHPMailer examples的設置。

要顯示SSL證書/ TLS錯誤使用方法:

$mail->SMTPDebug = 3;

相關問題