Bootstrap, contact_php und contact.js nicht E-Mails senden
Ich bin mit Bootstrap und nutzen wollen, eine E-Mail-Kontakt-Formular. Ich habe setup eine test-Seite - http://www.beatrootonline.co.uk/test.html. Wie Sie sehen können, überprüfen Sie ok (jqBootstrapValidation.js) und scheint eine E-Mail senden. Ich bin jedoch nicht erhalten eine E-Mail über dieses Formular.
Hier ist der html -
<div class="row">
<div class="col-lg-12">
<form name="sentMessage" id="contactForm" novalidate>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<input type="text" class="form-control" placeholder="Your Name *" id="name" required data-validation-required-message="Please enter your name.">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="email" class="form-control" placeholder="Your Email *" id="email" required data-validation-required-message="Please enter your email address.">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="tel" class="form-control" placeholder="Your Phone *" id="phone" required data-validation-required-message="Please enter your phone number.">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<textarea class="form-control" placeholder="Your Message *" id="message" required data-validation-required-message="Please enter a message."></textarea>
</div>
</div>
<div class="clearfix"></div>
<div class="col-lg-12 text-center">
<div id="success"></div>
<button type="submit" class="btn btn-xl">Send Message</button>
</div></div>
</form>
</div>
</div>
und die contact_me.js
$(function() {
$("input,textarea").jqBootstrapValidation({
preventSubmit: true,
submitError: function($form, event, errors) {
//additional error messages or events
},
submitSuccess: function($form, event) {
event.preventDefault(); //prevent default submit behaviour
//get values from FORM
var name = $("input#name").val();
var email = $("input#email").val();
var phone = $("input#phone").val();
var message = $("textarea#message").val();
var firstName = name; //For Success/Failure Message
//Check for white space in name for Success/Fail message
if (firstName.indexOf(' ') >= 0) {
firstName = name.split(' ').slice(0, -1).join(' ');
}
$.ajax({
url: "bin/contact_me.php",
type: "POST",
data: {
name: name,
phone: phone,
email: email,
message: message
},
cache: false,
success: function() {
//Success message
$('#success').html("<div class='alert alert-success'>");
$('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×")
.append("</button>");
$('#success > .alert-success')
.append("<strong>Your message has been sent. </strong>");
$('#success > .alert-success')
.append('</div>');
//clear all fields
$('#contactForm').trigger("reset");
},
error: function() {
//Fail message
$('#success').html("<div class='alert alert-danger'>");
$('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×")
.append("</button>");
$('#success > .alert-danger').append("<strong>Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!");
$('#success > .alert-danger').append('</div>');
//clear all fields
$('#contactForm').trigger("reset");
},
})
},
filter: function() {
return $(this).is(":visible");
},
});
$("a[data-toggle=\"tab\"]").click(function(e) {
e.preventDefault();
$(this).tab("show");
});
});
/*When clicking on Full hide fail/success boxes */
$('#name').focus(function() {
$('#success').html('');
und meine contact_me.php
<?php
//check if fields passed are empty
if(empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['message']) ||
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo "No arguments Provided!";
return false;
}
$name = $_POST['name'];
$email_address = $_POST['email'];
$message = $_POST['message'];
//create email body and send it
$to = '[email protected]'; //put your email
$email_subject = "Contact form submitted by: $name";
$email_body = "You have received a new message. \n\n".
" Here are the details:\n \nName: $name \n ".
"Email: $email_address\n Message \n $message";
$headers = "From: [email protected]\n";
$headers .= "Reply-To: $email_address";
mail($to,$email_subject,$email_body,$headers);
return true;
?>
Bekomme ich eine Meldung auf dem Bildschirm, die sagen, dass die E-Mail wurde gesendet, aber keine E-Mail ankommt (ich ersetzte meine echte E-Mail-Adresse für einen fake auf die php -)
- sind Sie auf einem gemeinsam genutzten oder dedizierten server? hast du php-mail eingestellt? haben Sie überprüft, die mail-logs auf deinem server?
- Sie kann senden E-mail von Ihrem localhost
- Ich hatte einen Tippfehler in der contact.php code in Zeile 12 (nicht gezeigt in dem Beispiel oben) einfach entfernt, hochgeladen und es funktioniert!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, die
mail()
Funktion im Zustand wie :So können Sie überprüfen, ob die mail gesendet wird oder nicht.
Stellen Sie sicher, dass contact_me.php sendet E-mail nach dem laden manuell. E-Mail-Funktion würde die Arbeit nur in bestimmten web-hosts. Sie brauchen, um es zu aktivieren, manuell, bevor Sie beginnen können, versenden von E-mails.
Versuchen Sie es mit PHPMailer. Sie finden es hier. Es ist viel sicherer und sehr viel zuverlässiger als die einfache mail-Funktion.
Ich hatte einen Tippfehler in der contact.php code in Zeile 12 (nicht gezeigt in dem Beispiel oben) einfach entfernt, hochgeladen und es funktioniert!! – Vielen Dank an alle!