[PHP] Ontvang geen e-mail van contactformulier

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Tommy The Cat
  • Registratie: Januari 2004
  • Laatst online: 14-09 15:02
Hier denk ik een mooi up-to-date, schoon en simpel PHP script te hebben gevonden om te gebruiken voor het gebruik van een contacformulier op mijn website (concept). Bovendien zit er een FAQ bij, dus prima geschikt voor de ultieme newbie die ik ben.

Voordat ik het script en de bijbehorende html verder ga verfijnen en uitbreiden met wat anti-spam maatregelen moet ik eerst de zaak in z'n meest simpele vorm werkzaam zien te krijgen. Dat lukt slechts ten dele. Er wordt met succes doorverwezen naar de 'bedankt voor uw feedback'-pagina (wat is ie mooi he ;) !!), maar er komt geen e-mail aan op het in het script opgegeven e-mail adres. De FAQ dat betrekking heeft op dit script zegt hierover het volgende:
Q: The "Thank Your" page shows up correctly, but I don't get any e-mail?
A: If the PERFECT script properly redirects you to the confirmation web page but fails to send an e-mail, try replacing the the line:
mail($SendTo, $SubjectLine, $MsgBody, "From: $SendFrom");
with:
mail($SendTo, $SubjectLine, $MsgBody);
If that doesn't work, your server is probably configured to block the "mail()" function (see: The PHP Group, SMTP, and WeberDev). Ask your web hosting company if they allow PHP mail.
Het weglaten van "From: $SendFrom" heeft echter niet mogen baten. Telefonisch contact met de webhoster - Deziweb - bevestigt vervolgens dat PHP-mail niet geblokkeerd is, zoals hierboven gesuggereerd. Eveneens ondersteunt Deziweb PHP 5.

Ondanks het volgen van deze basic PHP tutorial kan ik zelf de fout niet ontdekken.

* Dat method=post in de html niet geschreven staat als method="post" blijkt niet van invloed.


[code=php]
<?php
// Configuration Settings
$SendFrom = "Form Feedback <....@home.nl>";
$SendTo = "....@home.nl";
$SubjectLine = "Feedback Submission";
$ThanksURL = "Uwberichtisverzonden.html"; //confirmation page

// Build Message Body from Web Form Input
foreach ($_POST as $Field=>$Value)
$MsgBody .= "$Field: $Value\n";
$MsgBody .= "\n" . @gethostbyaddr($_SERVER["REMOTE_ADDR"]) . "\n" .
$_SERVER["HTTP_USER_AGENT"];
$MsgBody = htmlspecialchars($MsgBody, ENT_NOQUOTES); //make safe

// Send E-Mail and Direct Browser to Confirmation Page
mail($SendTo, $SubjectLine, $MsgBody, "From: $SendFrom");
header("Location: $ThanksURL");
?>
[/code=php]

[code=html]
<form method=post action="feedback.php">
Your Name: <input type=text name="Name" size=25><br>
Your E-Mail: <input type=text name="EMail" size=30><br>
Your Comment: <textarea name="Comment" rows=4 cols=30></textarea><br>
<input type=submit value="Submit Feedback">
</form>
[/code=html]

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 21-09 14:53

MueR

Admin Tweakers Discord

is niet lief

Dat zal je echt aan de auteur moeten vragen. Wanneer je zelf aan de slag wilt, kan je beter naar phpMailer of dergelijke apparaten kijken.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • H004
  • Registratie: Maart 2006
  • Laatst online: 28-05 19:55
Wat heb je al zelf geprobeerd qua debuggen? Wat staat er in de $_POST-array? Wat staat er in $SendTo? Wat in $subjectLine, wat in $msgBody... etc...

Meestal blokkeren hosters uitgaande email als de headers van de mail niet goed zijn, dit ivm spam. Kloppen je mail-headers wel?

Acties:
  • 0 Henk 'm!

  • Tommy The Cat
  • Registratie: Januari 2004
  • Laatst online: 14-09 15:02
H004 schreef op woensdag 21 mei 2008 @ 13:40:
Wat heb je al zelf geprobeerd qua debuggen? Wat staat er in de $_POST-array? Wat staat er in $SendTo? Wat in $subjectLine, wat in $msgBody... etc...

Meestal blokkeren hosters uitgaande email als de headers van de mail niet goed zijn, dit ivm spam. Kloppen je mail-headers wel?
Afgezien van het doorlezen van de FAQ, derhalve het zoeken naar ontbrekende ";" tekens niets. Dat mede aangezien ik erop vertrouw dat er geen bugs in zitten: kijk naar alle lovende feedback op dit script.

Ik begrijp de overige opmerkingen niet. Is dit script niet compleet? Wat moet er nog meer bijgehaald worden aangaande $SendTo, $subjectLine, etc..?

Acties:
  • 0 Henk 'm!

  • remco_k
  • Registratie: April 2002
  • Laatst online: 01:42

remco_k

een cassettebandje was genoeg

Even iets heel simpels:
PHP:
1
$SendTo =      "....@home.nl";

Sommige hosters staan alleen maar toe dat een php script e-mail stuurt naar een voor die host lokaal adres. Zo ook bij mijn webhoster.
Dus als je domeinnaam is: www.domeintje.nl dan kan je in dat geval alleen e-mail sturen aan *@domeintje.nl
Alle andere e-mail bestemmingen worden (in mijn geval) gedumpt en zie je nergens meer iets van terug.
Lijkt me een antispam regeling van de hoster.
Een oplossing daarvoor is om een e-mail adres op die host te configureren die vervolgens een forward instellen naar ...@home.nl.

@hieronder;
Geen dank. :)

[ Voor 19% gewijzigd door remco_k op 21-05-2008 14:00 ]

Alles kan stuk.


Acties:
  • 0 Henk 'm!

  • Tommy The Cat
  • Registratie: Januari 2004
  • Laatst online: 14-09 15:02
remco_k schreef op woensdag 21 mei 2008 @ 13:56:
Even iets heel simpels:
PHP:
1
$SendTo =      "....@home.nl";

Sommige hosters staan alleen maar toe dat een php script e-mail stuurt naar een voor die host lokaal adres. Zo ook bij mijn webhoster.
Dus als je domeinnaam is: www.domeintje.nl dan kan je in dat geval alleen e-mail sturen aan *@domeintje.nl
Alle andere e-mail bestemmingen worden (in mijn geval) gedumpt en zie je nergens meer iets van terug.
Lijkt me een antispam regeling van de hoster.
Een oplossing daarvoor is om een e-mail adres op die host te configureren die vervolgens een forward instellen naar ...@home.nl.
Held! Hier zat het probleem :) . Deziweb maakt dus gebruik van dit gegeven.

Ik dank u!

Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Opgelost, en direct nog even een move naar het juiste forum ;)
Pagina: 1