Bonjour,
Je suis débutant et j'essaie de trouver un moyen simple d'envoyer un mail depuis un site,
Voici la partie du form
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <form name="sentMessage" id="contactForm" novalidate> <div class="row"> <div class="col-md-6"> <div class="form-group"> <input type="text" id="name" class="form-control" placeholder="Nom" required="required"> <p class="help-block text-danger"></p> </div> </div> <div class="col-md-6"> <div class="form-group"> <input type="email" id="email" class="form-control" placeholder="Email" required="required"> <p class="help-block text-danger"></p> </div> </div> </div> <div class="form-group"> <textarea name="message" id="message" class="form-control" rows="4" placeholder="Message" required></textarea> <p class="help-block text-danger"></p> </div> <div id="success"></div> <button type="submit" class="btn btn-default">Envoyer</button> </form>
quand je clique sur envoyer un script js se lance et qui fait un auto rafraichissement de la partie form dont voici le code
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 $(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 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: "js/contact_me.php", type: "POST", data: { name: name, 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>Votre message a été envoyé avec succès.</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.!"); $('#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(''); });
j'ai trouvé ce code php :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 <?php session_start(); require_once '../phpmailer/class.phpmailer.php'; require_once '../phpmailer/class.pop3.php'; require_once '../phpmailer/class.smtp.php'; require_once '../phpmailer/PHPMailerAutoload.php'; require_once '../phpmailer/class.phpmaileroauthgoogle.php'; $errors = []; if(isset($_POST['name'], $_POST['email'], $_POST['message'])) { $fields = [ 'name' => $_POST['name'], 'email' => $_POST['email'], 'message' => $_POST['message'] ]; foreach($fields as $field => $data) { if(empty($data)) { $errors[] = 'The ' . $field . ' field is required'; } } if(empty($errors)) { $m = new PHPMailer; $m->isSMTP(); $m->Host = 'mail.xxxx.xx'; $m->Username = 'maild'envoi@xxxx.xx'; $m->Password = 'monpass'; $m->SMTPSecure = 'ssl'; $m->Port = 465; $m->SMTPAuth = true; $m->isHTML(); $m->Subject = 'Contact from website'; $m->Body = 'From: ' . $fields['name'] . ' (' . $fields['email'] . ')<p>' . $fields['message'] . '</p>'; $m->FromName = 'Contact'; $m->AddAddress('maildestination@xxxx.xx', 'contact'); if($m->send()) { /* header('Location: ../index.php'); */ die(); } } } /* else { $errors[] = 'Sometings went wrong'; } */ $_SESSION['errors'] = $errors; $_SESSION['fields'] = $fields; /* header('Location: ../index.php'); */
j'ai testé le tout : l'envoie de mon mail marche impeccable, l'auto rafraichissement du DIv contenant le form aussi, mais quand je mets un password incorrect dans mon fichier php ou mail incorrect, j'ai toujours le message ''votre message a était bien envoyé'' et non un message d'erreur, même le code PHP il faut modifier quelque chose mais comme je suis un débutant comme je l'ai dit au début, je veux bien un petit coud de main, un indice de votre part,
cordialement,
Partager