Mail werkt opeens niet meer
public function mailAction()
{
$ontvangers = array(
"[email protected]",
"[email protected]"
);
$email_to = implode(',', $ontvangers);
$naam = filter_input(INPUT_POST, 'naam', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
$onderwerp = filter_input(INPUT_POST, 'onderwerp', FILTER_SANITIZE_STRING);
$bericht = filter_input(INPUT_POST, 'bericht', FILTER_SANITIZE_STRING);
$headers = 'From:' . $naam . "\r\n" .
'Reply-To:' . $email . "\r\n" .
'MIME-Version: 1.0' . "\r\n" .
'Content-type: text/html; charset=iso-8859-1' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$html_bericht = new View('leden/contact_email.php', compact('naam', 'email', 'onderwerp', 'bericht'));
mail($email_to, $onderwerp, $html_bericht->render(), $headers);
$contact_success = new View('leden/contact_success.php', compact('naam', 'email'));
echo $contact_success->render();
}
De method op zicht werkt goed want nadat ik het form heb gesubmit treedt $contact_success in werking, alleen de mail wordt nit verzonden. Ik heb inmiddels al 5 verschillende email adressen geprobeerd maar overal zonder succes.
Zie ik wellicht iets over het hoofd?
Het werkt "opeens" niet meer? Of heeft eigenlijk nooit gewerkt.
Als ik je code ontleed dan is het nu gewoon regeltje voor regeltje vooruit denderen:
Je doet mail() en vervolgens naar de succes pagina versturen.
Beter zou zijn als je eerst er een if statement omheen maakt:
Code (php)
Dan is nog even de vraag waarom het niet werkt.
Dat kan een legio aan dingen zijn. Je verteld niet of je het lokaal zend, of via hosting.
Staat je hosting/lokaal het wel toe om mails via mail() te verzenden?
Heb je ook een eenvoudige code geprobeerd en werkte het toen wel?
Gewijzigd op 24/02/2015 10:48:39 door Bart V B
Bart V B op 24/02/2015 10:46:56:
Je titel omschrijft een ander probleem dan wat je vraag is. :)
Het werkt "opeens" niet meer? Of heeft eigenlijk nooit gewerkt.
Als ik je code ontleed dan is het nu gewoon regeltje voor regeltje vooruit denderen:
Je doet mail() en vervolgens naar de succes pagina versturen.
Beter zou zijn als je eerst er een if statement omheen maakt:
Dan is nog even de vraag waarom het niet werkt.
Dat kan een legio aan dingen zijn. Je verteld niet of je het lokaal zend, of via hosting.
Staat je hosting/lokaal het wel toe om mails via mail() te verzenden?
Heb je ook een eenvoudige code geprobeerd en werkte het toen wel?
Het werkt "opeens" niet meer? Of heeft eigenlijk nooit gewerkt.
Als ik je code ontleed dan is het nu gewoon regeltje voor regeltje vooruit denderen:
Je doet mail() en vervolgens naar de succes pagina versturen.
Beter zou zijn als je eerst er een if statement omheen maakt:
Code (php)
Dan is nog even de vraag waarom het niet werkt.
Dat kan een legio aan dingen zijn. Je verteld niet of je het lokaal zend, of via hosting.
Staat je hosting/lokaal het wel toe om mails via mail() te verzenden?
Heb je ook een eenvoudige code geprobeerd en werkte het toen wel?
Hoi Bart. Sorry voor de onduidelijkheid. De method in kwestie heeft altijd gewerkt, zowel lokaal als op de server.
Je hebt inderdaad gelijk dat ik die check in had moeten bouwen, en dat heb ik inmiddels dus gedaan.
if (!$verzenden){
$contact_error = new View('leden/contact_error.php', compact('naam', 'email'));
echo $contact_error->render();
}else{
$contact_success = new View('leden/contact_success.php', compact('naam', 'email'));
echo $contact_success->render();
}
En het werkt nu prima, thanks for the input
Zoals je ziet heb ik voor te error ook meteen maar een template gemaakt.
Maar komen de mails nu ook aan?
Want dat was het eigenlijke probleem.
Bart V B op 24/02/2015 11:54:47:
Geen probleem.
Maar komen de mails nu ook aan?
Want dat was het eigenlijke probleem.
Maar komen de mails nu ook aan?
Want dat was het eigenlijke probleem.
Goede vraag Bart. Lokaal werkt het nu prima :) maar op de Server dus niet :( Zie jij nog iets vreemds dat dit zou kunnen veroorzaken?
Misschien wordt je mail in een wachtrij geplaatst, en wordt deze wachtrij niet leeggehaald (de postbus wordt nooit geleegd). Informeer bij de partij die je website host of je mail queue wel wordt uitgelezen.
Thomas van den Heuvel op 24/02/2015 13:23:11:
Als je van mail() true terugkrijgt kun je vanuit PHP verder niet zoveel meer doen. Het e-mailbericht zit dan al in de postbus, klaar om verzonden te worden.
Misschien wordt je mail in een wachtrij geplaatst, en wordt deze wachtrij niet leeggehaald (de postbus wordt nooit geleegd). Informeer bij de partij die je website host of je mail queue wel wordt uitgelezen.
Misschien wordt je mail in een wachtrij geplaatst, en wordt deze wachtrij niet leeggehaald (de postbus wordt nooit geleegd). Informeer bij de partij die je website host of je mail queue wel wordt uitgelezen.
Hoi Thomas. Bedank voor je reactie. Daar had je dus helemaal gelijk in. Heb het bedrijf inmiddels gebeld en het een en ander is opgelost