PHP form validation Ajax XMLhttp verzend geen mail naar mijn mailbox.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ch chichi

Ch chichi

26/11/2016 23:55:49
Quote Anchor link
Het verzenden van een test mail werkt, en ik zie dat hij deze syntax uitvoerd : _("status").innerHTML = '<p>Thanks your message has been sent successfully.</p>';

Ik heb een simpele test mail gemaakt en die getest. In de browser zie ik gewoon dat alles werkt, maar gek genoeg ontvang ik geen mail in mijn inbox. Lopen Googlen en alles getest, zoals uitgebreide headers toevoegen in PHP, maar dat lijkt allemaal niets uit te maken.

<div class="container-fluid">


<form method="POST" action="send_email.php" id="contact-form" onsubmit="submitForm(); return false;">
<h2 id="header-contact">Contact</h2>
<label>
<span class="contact">Your Email</span>
<input id="email" class="contact_input" type="text" name="email" placeholder="[email protected]">
</label>

<label>
<span class="contact">Subject</span>
<input id="subject" class="contact_input contactinfo" type="text" name="message">
</label>

<label>
<span class="contact">Message</span>
<textarea id="message" name="comment" class="contact_input contactinfo"></textarea>
</label>

<label>
<input id="button" type="submit" value="SEND">
<br>
<span id="status"></span>
</label>
</form>
</div>


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
<?php
    if (isset($_POST["email"]) && isset($_POST["subject"]) && isset($_POST["message"])) {
        $email = $_POST["email"];
        $subject = $_POST["subject"];
        $message = $_POST["message"];
        
        $to = "[email protected]";
        $from = $email;
        $subject = "Contact From Message";
        $message = "<b>Email Address:</b> ".$email. " <br><b>Subject: </b>  ".$subject." <p> ".$message." </p>";
        $headers = 'From: [email protected]' . "\r\n" .
                  'Reply-To: [email protected]' . "\r\n" .
                  'X-Mailer: PHP/' . phpversion();
        if (mail($to, $subject, $message, $from)) {
            echo "success";
        }
else {
            echo "The server failed to send the message. Please try again later.";
        }
    }

?>


function _(id) {
return document.getElementById(id);
}

function submitForm() {
_("button").disbled = true;
_("status").innerHTML = "Please wait...";
var formdata = new FormData();
formdata.append( "email", _("email").value );
formdata.append( "subject", _("subject").value );
formdata.append( "message", _("message").value );
var ajax = new XMLHttpRequest();
ajax.open("POST", "resume/send_email.php"); // parameter: method, url, boolean (optional)
ajax.onreadystatechange = function() {
if(ajax.readyState == 4 && ajax.status == 200) {
if(ajax.responseText == "success"){
_("status").innerHTML = '<p>Thanks your message has been sent successfully.</p>';
} else {
_("status").innerHTML = ajax.responseText;
_("button").disabled = false;
}
}
}
ajax.send(formdata);
}
 
PHP hulp

PHP hulp

06/11/2024 00:07:52
 
- Ariën  -
Beheerder

- Ariën -

27/11/2016 01:02:29
Quote Anchor link
Gelukkig hebben we ook [code][/code] tags op het forum hier voor scripts.

Verder moet de vierde parameter van je mail() $headers zijn, en geen $from. Gebruik bij voorkeur phpMailer.
 
Ben van Velzen

Ben van Velzen

27/11/2016 01:59:02
Quote Anchor link
"Lopen Googlen en alles getest, zoals uitgebreide headers toevoegen in PHP, maar dat lijkt allemaal niets uit te maken."
Dus je hebt gekeken naar SPF? Het incorrecte gebruik van mail? DKIM? Steekwoorden die kunnen leiden tot een spam trigger? Hoe je headers werkelijk hoort op te bouwen? (hint: een from/reply-to adres bestaat uit een naam en een e-mailadres tussen <>, ook zonder naam hoort het adres tussen <>, ook is x-mailer onzinnig, want deze wordt al toegevoegd door PHP)

Maak eerst gewoon eens een losstaand mail script, en kijk wat dat doet voordat je het probeert te verwerken in een volledig script. Dat maakt debugging *veel* eenvoudiger.
 



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.