2016-11-17 7 views
1
Fatal error: Class 'PHPMailer' not found in C:\wamp\www\sendemail.php on line 13 

で見つかっていないこれは行13です:致命的なエラー:クラスのphpmailerの "

$mail = new PHPMailer(); 

私はすでに研究していると、彼らはあなたがそれらを持っている必要が言う:

require_once('class.pop3.php'); 
require_once('class.phpmailer.php'); 
require_once('class.smtp.php'); 
require_once('PHPMailerAutoload.php'); 

しかし、私すでにそれらを持っていてsendemail.phpと同じフォルダにありますが、それと同じエラーです。ここで

<?php 
/** 
* This example shows settings to use when sending via Google's Gmail servers. 
*/ 
//SMTP needs accurate times, and the PHP time zone MUST be set 
//This should be done in your php.ini, but this is how to do it if you don't have access to that 
date_default_timezone_set('Etc/UTC'); 
require_once('class.pop3.php'); 
require_once('class.phpmailer.php'); 
require_once('class.smtp.php'); 
require_once('PHPMailerAutoload.php'); 
//Create a new PHPMailer instance 
$mail = new PHPMailer; 
//Tell PHPMailer to use SMTP 
$mail->isSMTP(); 
//Enable SMTP debugging 
// 0 = off (for production use) 
// 1 = client messages 
// 2 = client and server messages 
$mail->SMTPDebug = 2; 
//Ask for HTML-friendly debug output 
$mail->Debugoutput = 'html'; 
//Set the hostname of the mail server 
$mail->Host = 'smtp.gmail.com'; 
// use 
// $mail->Host = gethostbyname('smtp.gmail.com'); 
// if your network does not support SMTP over IPv6 
//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission 
$mail->Port = 587; 
//Set the encryption system to use - ssl (deprecated) or tls 
$mail->SMTPSecure = 'tls'; 
//Whether to use SMTP authentication 
$mail->SMTPAuth = true; 
//Username to use for SMTP authentication - use full email address for gmail 
$mail->Username = "[email protected]"; 
//Password to use for SMTP authentication 
$mail->Password = "password"; 
//Set who the message is to be sent from 
$mail->setFrom('[email protected]', 'name'); 
//Set an alternative reply-to address 
//$mail->addReplyTo('[email protected]', 'First Last'); 
//Set who the message is to be sent to 
$mail->addAddress('[email protected]', 'name'); 
//Set the subject line 
$mail->Subject = 'PHPMailer GMail SMTP test'; 
//Read an HTML message body from an external file, convert referenced images to embedded, 
//convert HTML into a basic plain-text alternative body 
$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); 
//Replace the plain text body with one created manually 
$mail->AltBody = 'This is a plain-text message body'; 
//Attach an image file 
//$mail->addAttachment('images/phpmailer_mini.png'); 
//send the message, check for errors 
if (!$mail->send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
    echo "Message sent!"; 
} 

私のファイルのレイアウトは次のとおりです。

File layout

+0

_sendemail.php_に名前空間がありますか? – haitran

+0

申し訳ありませんが、どういう意味ですか? – Zik

+0

sendemail.phpに必要なlibファイルを追加しましたか? – Soliyappan

答えて

0

は、すべてのそれらの余分require行が支援するつもりされていない追加します。元のサンプルコードのように、オートローダーをロードするだけです。絶対パスからロードしてみてください。

require '/full/path/to/PHPMailerAutoload.php'; 

それが動作する場合、あなたはphp.iniであなたのinclude_path設定はどこからロードしているディレクトリが含まれていることを確認する必要があります - 例えば、それはの一つとして.含まれていることパス。

私は、これは環境/設定の問題であるかなり確信している、いないコードなので、完全に最小限のスクリプトを試してみてください、ちょうどこの:

<?php 
require 'class.phpmailer.php'; 
$mail = new PHPMailer; 

新しい開発をやっている場合は、あなたが本当に使用する必要がありますとにかくcomposer - それは完全に問題を解決し、あなたのライブラリがどこにあるか心配する必要はありません。

+0

私はWAMPを使用しています。私は 'www'フォルダ内にあるので、まだ "PHPMailerAutoload.php"が表示されるはずですが、私はまだ 'www/PHPMailerAutoLoad.php'エラー:require():オープンに失敗しました 'www/PHPMailerAutoload.php'(include_path = '.; C:\ php \ pear') – Zik

+0

私のウィンドウにはパスが含まれています。 Windows: "\ path1; \ path2" ; include_path = "。; c:\ php \ includes" – Zik

+1

チェックしないでください。絶対パスを試してください。 – Synchro

0

私は同じ問題を抱えていて、メールを送信するために使用されるPHPスクリプトの最上部に次の2行を入力することで解決しました。これは、ファイルI require dに限られません。

<?php 
use PHPMailer\PHPMailer\PHPMailer; 
use PHPMailer\PHPMailer\Exception; 
?> 

それがあなたのためにも機能するかどうか教えてください。

関連する問題