login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Mailfout From-header

Offline Dark_Paul - 10/09/2006 16:19 (laatste wijziging 10/09/2006 16:28)
Avatar van Dark_PaulPHP ver gevorderde Hej,
Op deze vraag is vast een gemakkelijk antwoord, maar ik zie mijn fout niet. Als ik een mail wil versturen krijg ik deze error:
Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\apache\www\mail.php on line 51
Er is een fout opgetreden bij het versturen van de mail.
Als ik $headers; echo, krijg ik dit te zien:
MIME-Version: 1.0 Content-type: text/html; charset=iso-8859-1 From: "Blaat" Subject: "bla"
Zo ziet de code er nu uit:
  1. <?php
  2. if (!empty($_POST['e_subject'])) {
  3. $subject = htmlentities($_POST['e_subject']);
  4. }
  5. $headers = 'MIME-Version: 1.0'."\r\n";
  6. $headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
  7. $headers .= 'From: "'.$_POST['e_name'].'" <'.$_POST['e_mail'].'>'."\r\n";
  8. $headers .= 'Subject: "'.$subject.'"'."\r\n";
  9. $bericht = htmlentities($_POST['e_message']);
  10. $send_mail = mail('paul@why-online.com', $bericht, $headers);
  11. if ($send_mail === TRUE) {
  12. echo 'Uw mail is verstuurd.';
  13. }
  14. else {
  15. echo 'Er is een fout opgetreden bij het versturen van de mail.<br />';
  16. }
  17. ?>
Line 51 is de regel $send_mail = ...
Ik zie niet wat er mis is met mijn From-headers, iemand van jullie wel? Als ik de From-header met een statische naam en een statisch e-mailadres doe, krijg ik dezelfde error.

6 antwoorden

Gesponsorde links
Offline marten - 10/09/2006 16:21
Avatar van marten Beheerder Kijk eerst je quotes eens na.
Je begint overal met ' en je eindigt met "
Offline Dark_Paul - 10/09/2006 16:25
Avatar van Dark_Paul PHP ver gevorderde Dat heeft een reden, namelijk dat \r en \n niet werken binnen enkele quotes. Als je goed kijkt zie je dat ik aan het einde de overstap van enkele naar dubbele maak. Dit zou gewoon moeten werken, want in een ander script werkt 't ook. Alle quotes zijn goed gesloten voor zover ik kan zien.
Offline marten - 10/09/2006 16:28
Avatar van marten Beheerder $headers .= 'Subject: "'.$subject.'"'."\r\n";

Kijk eens naar hoe je je variabelen buiten de quotes doet. Daar klopt niet veel van......
Offline Dark_Paul - 10/09/2006 16:32
Avatar van Dark_Paul PHP ver gevorderde zoals ik het zo zie klopt het wel. Ik open met een '. Omdat ik die variabele binnen " " moet hebben, open ik eerst een ". Vervolgens sluit ik de eerste ' om de variabele neer te zetten. Die open ik weer om verder te gaan, dan sluit ik de " om de variabele. De ' staat dan nog open, die sluit ik, en dan open ik de " met \r\n erin, sluit ik en doe een ; . Als ik er iets aan verander kloppen ze niet meer.
Offline Thomas - 10/09/2006 16:51
Avatar van Thomas Moderator Kijk eens goed naar je aanroep:

mail('paul@why-online.com', $bericht, $headers);

Dat is één parameter te weinig (titel).

Als je MIME-mail gebruikt is $bericht trouwens LEEG (alles, inclusief je message-body, zit dan in $headers).
Offline Dark_Paul - 10/09/2006 16:58
Avatar van Dark_Paul PHP ver gevorderde als ik alles in $headers zet, krijg ik de foutmelding dat er te weinig parameters zijn opgegeven, dat de mail() functie er minstens 3 nodig heeft.
Je hebt wel gelijk, het werkt als ik een 4e parameter meegeef, $subject. Het werkt nu probleemloos 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.178s