Graag had ik wat advies van jullie over het volgende.
Via een formulier wil ik een email kunnen sturen met een vaste opmaak (template).
In het formulier word gebruik gemaakt van een input email adres (waar de email naar toe moet) en nog een variabele waarde die terug moet komen in de template. Daarnaast wil ik een terug koppeling op de pagina dat het gelukt is.
Het formulier en de ajax call functie heb ik volledig af en wil nu graag weten wat nu de handigste afhandeling is.
declaratie van lokale variabelen +
output buffering +
include(_once()) van template waarin variabelen worden verwerkt?
Vervolgens zou je simpelweg met mail() + enige headers je mail kunnen versturen, of je maakt gebruik van PHPMailer als je dat leuk vindt.
Daarnaast wil ik een terug koppeling op de pagina dat het gelukt is.
Dit staat verder los van enige werkwijze die je gebruikt. Vang de returnwaarde van mail() op in een variabele, of van de send() methode indien je PHPMailer gebruikt.
(en anders retourneer je standaard false op eenzelfde wijze)
Ook kun je in je AJAX-request aangeven wat voor type data je terugverwacht, in dit geval dus JSON. Hiertoe kun je de volgende regel ook nog toevoegen aan je JavaScript:
op een of andere manier zend hij geen mail naar het opgegeven email adres.
Hm :/.
Waar blijkt dit uit? Retourneert mail() false? Of krijg je niets binnen?
Succesvol verzenden staat niet garant voor succesvol ontvangen (net zoals de reguliere post :)).
Je zult eerst even precies moeten uitzoeken waar het schip nu strandt.
Maak anders eens een heel simpel/plat script die simpelweg een test-onderwerp en test-bericht mailt naar een statisch e-mailadres en kijk vanuit daar verder wat er misgaat. Maak voor jezelf alles inzichtelijk door een en ander op het scherm af te drukken. Overweeg om in eerste instantie de extra abstractie middels AJAX achterwege te laten, je bent dan in feite een beetje "blind" aan het ontwikkelen en dat is niet handig als je niet precies weet waar iets misgaat (EDIT: dit had ik deels ondervangen door het retourneren van de statuscode die aangaf of het mailen was geslaagd)
Bedankt voor de tip. Heb een functie gemaakt die ik kan uitvoeren en zo stap voor stap dingen erbij kan zetten.
Nu zit ik nog met een probleem en dat is dat mijn template (HTML) als tekst word weergegeven.
Mijn template heb ik nog simpel gehouden door alleen de achtergrond een kleur te geven.
Nu zie ik op diversen sites staan dat ze een html toevoegen door dit te doen:
<?php
$message = '<html><body>en de inhoud</body></html>';
?>
Maar het moet toch ook kunnen om een html file in te voegen zoals Frank dat boven beschreef?