Ik weet niet waarom ik zoveel ongeluk heb, terwijl ik de instructies volg uit de manual.

Fatal error: Uncaught Error: Class 'PHPMailer' not found in /home/admin/domains/domain.nl/private_html/inc/aanmelden_business.php:144 Stack trace: #0 /home/admin/domains/domain.nl/private_html/inc/webshop_registratie.php(11): include() #1 /home/admin/domains/domain.nl/private_html/index.php(101): include('/home/admin/dom...') #2 {main} thrown in /home/admin/domains/domain.nl/private_html/inc/aanmelden_business.php on line 144


met deze includes

require (DOC_ROOT.'inc/PHPMailer/src/PHPMailer.php');
require (DOC_ROOT.'inc/PHPMailer/src/Exception.php');
require (DOC_ROOT.'inc/PHPMailer/src/SMTP.php');

Dan...

$mail = new PHPMailer(); // defaults to using php "mail()"
.. hier gaat het fout.



De paden zijn correct en snap niet waarom het niet duidelijk staat beschreven in de manual.
Ik kom dus niet verder hiermee. Ik wil eigenlijk gewoon een pdf als attachment mailen.

[size=xsmall]Toevoeging op 12/05/2019 07:33:04:[/size]

UPDATE


$mail = new PHPMailer\PHPMailer\PHPMailer(); // defaults to using php "mail()"
//$body             = file_get_contents($bericht);
//$body             = preg_match("[\]",'',$body);
$mail->AddReplyTo("[email protected]","First Last");
$mail->SetFrom('[email protected]');

$mail->AddReplyTo("[email protected]","First Last");
$address = "[email protected]";
$mail->AddAddress($address, "John Doe");
$mail->Subject    = "PHPMailer Test Subject via mail(), basic";
//$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->IsHTML(true);
$mail->Body = $bericht;
//$mail->MsgHTML($body);

$mail->AddAttachment(DOC_ROOT."bedrijf_docs/algemene_voorwaarden-test.docx");      // attachment
//$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment

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


message is nu send, maar komt niet aan zonder foutmeldingen.
Waarom gebruik je niet de autoloader?
waar komt DOC_ROOT vandaan ?

Mijn advies zou zijn als je gebruik kan maken van de CLI om composer te installeren en dan PHPMailer te installeren met het commando composer require phpmailer/phpmailer zoals in de readme op github beschreven staat.
message is nu send, maar komt niet aan zonder foutmeldingen.
Wat betekent dit?

Frank Nietbelangrijk op 12/05/2019 16:28:12

waar komt DOC_ROOT vandaan ?
En wellicht belangrijker, hoe luidt deze? Heeft deze een trailing slash?

Je zou eens kunnen kijken welke classes geladen zijn na het aanroepen van de requires met get_declared_classes(), en anders klopt het pad (weer?) niet.
>> De paden zijn correct en snap niet waarom het niet duidelijk staat beschreven in de manual.

Klaarblijkelijk niet:

Fatal error: Uncaught Error: Class 'PHPMailer' not found

Ofwel, hij kan de class niet vinden. Dan is het niet heel vreemd dat de rest niet werkt.

Wat verschijnt er in beeld als je dit doet:

<?php

var_dump(DOC_ROOT.'inc/PHPMailer/src/PHPMailer.php');

?>

Reageren