De body van een bericht in PHPMailer-5

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Georg Kellersmann

Georg Kellersmann

12/03/2015 17:37:48
Quote Anchor link
Voorheen gebruikte ik en oudere versie van PHPMAiler
Nu heb ik PHPMailer-5.2.8
Als ik nu net als voorheen het bericht in een string zet zoals
$Bericht='Dit is een proefbericht';
en dan bij
$mail->Body = $Bericht;
dan wordt dat door PHPMailer niet geaccepteerd.
Dan komt er een foutbericht dat luidt:
Undefined variable in C:\wamp\www\mijnweb\metov2.php on line 85.
Zoeken heeft mij niet opgeleverd waarom dit nu fout is.
Iemand die dat weet?
 
PHP hulp

PHP hulp

20/04/2024 02:00:55
 
Frank Nietbelangrijk

Frank Nietbelangrijk

12/03/2015 17:58:27
Quote Anchor link
Hallo,

Lijkt mij geen bestand van PHPMailer. Is er niet iets anders fout gegaan? Anyway, wat staat er op regel 85 in het metov2.php?
 
Pipo Clown

Pipo Clown

12/03/2015 18:08:13
Quote Anchor link
typo in de variabelenaam ?
Variabele gedefinieerd buiten de functie waar je hem gebruikt ?
 
Georg Kellersmann

Georg Kellersmann

12/03/2015 18:18:38
Quote Anchor link
Daar staat:
$mail->Body = $Bericht;
en $Bericht='Dit is een proefbericht';
Dat staat uiteraard een aantal regels hoger.
Het is trouwens het enige waar PHPMailer over struikelt.
Bij eerdere foutjes werden die ook gemeld, maar dit is het enige dat over is.
PHJPMailer-5.2.8 heb ik een paar dagen terug gedownload van GitHub.
Uit een voorbeeld dat ik daar ook vond heb ik alle regels toegepast. Alleen bij stond
$mail->Body = 'hier de body van het bericht';


Toevoeging op 12/03/2015 18:22:31:

Pipo Clown op 12/03/2015 18:08:13:
typo in de variabelenaam ?
Variabele gedefinieerd buiten de functie waar je hem gebruikt ?

Het gaat hier om een eenmalige mailing dus ik heb er geen ingewikkelde toestand van gemaakt.
Alles staat in dat ene bestand, dus ook $Bericht= 'Dit is een proefbericht.';
en op het scherm wordt het goed afgedrukt.
 
Ivo P

Ivo P

12/03/2015 19:01:15
Quote Anchor link
het lijkt me los te staan van phpmailer.

kennelijk gaat $Bericht verloren tussen het definieren en jouw regel 85.
of om een of andere reden wordt $Bericht niet uitgevoerd, omdat er een if statement oid omheen staat?

Een typfout in de naam zou ook niet onmogelijk zijn.

kortom:

toon het stuk code vanaf iets voor $Bericht = tot aan regel 85 eens.
 
Georg Kellersmann

Georg Kellersmann

12/03/2015 19:10:13
Quote Anchor link
Komt morgen. Ik zit in Indonesie en het is hier al 1 uur in de nacht

Toevoeging op 13/03/2015 08:13:09:

De code waar het om gaat staat hieronder.
Inmiddels heb ik gevonden dat i.p.v. $mail-> body = 'blablabla';
ook gebruikt kan worden
Dat werkt en de mail wordt verzonden door localhost.
Nu staat er dus op lijn 27:
$mail->msgHTML(file_get_contents('file.htm'), dirname('mijnweb'));
code(php)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
//hier bericht maken
  $bericht='Beste vriend, \r\n'.' \r\n';
  $bericht.='\r\n';
  $bericht.='Je hebt mij bericht dat je".$optie." naar de re&uuml;nie komt  \r\n';
//$optie kan zijn 'met OV'of met 'eigen auto'of 'op andere manier'
  $bericht.='Zodra het programma definitief is krijg je het toegestuurd.\r\n';
  $bericht.='Wij hopen je op St.Juttemis bij het EYE te ontmoeten.\r\n';
  $bericht.='\r\n';
  $bericht.='Jan de Laatsteniet.\r\n';

require 'PHPMailer-5.2.8/PHPMailerAutoload.php';
  $mail = new PHPMailer();
  $mail->IsSMTP();                            // Set mailer to use SMTP
  $mail->Host = 'mijndomein';                 // Specify main and backup server
  $mail->Port = 2525;                         // Set the SMTP port
  $mail->SMTPAuth = false;                   // Enable SMTP authentication
  $mail->Username = 'ik@mijndomein';          // SMTP username
  $mail->Password = 'xxxxxxx';                // SMTP password
  $mail->SMTPSecure = '';                     // Enable encryption, 'ssl' also accepted
  $mail->From = 'mij@mijndomein';
  $mail->FromName = 'Jan';
  $mail->wordwrap = 60;
  $mail->IsHTML(true);                        // Set email format to HTML
  $mail->Subject = 'over het vervoer';
//dit is de regel waar het op vast loopt
  $mail->Body    = $Bericht;
// en die wordt dus als Fatal Error gerapporteerd (Undefined variable)
$mail->AltBody = 'helaas geen HTML';
if(!$mail->Send())
  {

   echo 'Bericht kon niet worden verzonden';
   echo 'Mailer Error: ' . $mail->ErrorInfo;
   exit;
echo 'Bericht is verzonden';
  }

?>

Dan doet zich wel het probleem voor dat ik de code waarmee dirname(' ') moet worden aangegeven niet goed kan krijgen.
Dus heb ik noodgedwongen de PHPMailer-code in dezelfde directory als file.htm staan.
Elke poging om file.htm in een andere directory te plaatsen mislukt met:
Warning: file_get_contents(contents.html) failed to open stream: No such file or directory in
C: wamp25\www\mijnweb\metov2.php on line xx

Het moet met PHPMailer ook best kunnen met $mail->body = “blablabla';
maar dan schijnt de inhoud van de body daar gewoon ingeschreven te moeten worden.
Dat lijkt mij eerlijk gezegd iets te achterlijk voor PHPMailer, maar hoe het dan wel moet met een in een string opgeborgen stuk tekst, daar ben ik nog niet achter. Steeds komt de foutmelding dat $Bericht een unidentified variable is.

Overigens vergat ik eerder te melden dat ik de hele mailprocedure aanvankelijk werkend had met Swift-4.2.2 en dat werkte van localhost wel meteen. Maar volgens mijn webhost kan het op de website niet met Swift maar wel met PHPMailer.
Sorry, het lukte me niet om het in en php-frame te plakken.



Toevoeging op 13/03/2015 08:23:45:

Het lukte dus toch.
lijn 27 is nu dus:
code(php
$mail->msgHTML(file_get_contents('file.htm'), dirname('mijnweb'));
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

13/03/2015 08:25:57
Quote Anchor link
PHP variabelen zijn hoofdlettergevoelig.
Je begint met $bericht en gebruikt later $Bericht.
Gewijzigd op 13/03/2015 08:26:13 door Ger van Steenderen
 
Georg Kellersmann

Georg Kellersmann

13/03/2015 08:51:43
Quote Anchor link
Inderdaad Ger,
wat ontzettend stom van me. Natuurlijk wist ik dat variabelen in php cse sensitive zijn en nu heb ik het toch dagenlang over het hoofd gezien. Bednakt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.