Se connecter / S'enregistrer

Résolu Script d'envoi de mail

Solutions (2)
Tags :
  • Php
  • Email
  • Script
  • Programmation
|
Bonsoir à tous,
J'ai créé une page PHP contenant un script d'envoi de mail aprés récupération du dernier enregidtrement de la table "Nouveladherent".
Le script ne m'envoie pas le mail. Lorsque j'enlève le DESC LIMIT 1 à la requête SQL, il m'envoie tous les enregistrements de la table.
Où est mon erreur, je butte sur ce problème depuis plusieurs jours.
Merci de votre aide.
Cordialement
-----------------------
Voic mon script:
<?php require_once('Connections/Connect.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

mysql_select_db($database_Connect, $Connect);
$query_recupmail = "SELECT Civilite, Nom, Prenom, Mail FROM nouveladherent ORDER by num DESC LIMIT 1";
$recupmail = mysql_query($query_recupmail, $Connect) or die(mysql_error());
$row_recupmail = mysql_fetch_assoc($recupmail);
$totalRows_recupmail = mysql_num_rows($recupmail);
ini_set('sendmail_from', 'franqui34@gmail.com');

// Recuperation des resultats
while($row = mysql_fetch_row($recupmail)){
$Civilite = $row[0];
$Nom = $row[1];
$Prenom = $row[2];
$Mail = $row[3];

//Assignation de variable du destinataire
$email = "monmail@xxxx.com";
// echo $email;
// Préparation du mail d'envoi au responsable Informatique
$sujet = "Avis d'une nouvelle adhésion";
// Construction du message
$message = "Attention, réception d'une nouvelle adhésion,"."\r\n\r\n";
$message .= "La personne qui vient de s'inscrire s'appelle : "."\r\n\r\n";
$message .= "$Civilite $Nom $Prenom "."\r\n\r\n";
$message .= "Son mail est : $Mail"."\r\n\r\n";
$message .= "----------------------------------------------------------"."\r\n\r\n";
$message .= "Penser à lui envoyer un mail de confirmation de sa pré-adhésion."."\r\n\r\n";
$message .= "----------------------------------------------------------"."\r\n";
mail($email, $sujet, $message); // Envoi du mail
}
?>
Contenus similaires
Meilleure solution
partage
, Ex-AdMiN |
Pourquoi tu as $row_recupmail = mysql_fetch_assoc($recupmail); ? c'est là que tu "perds" tes infos qui sont donc dans le tableau associatif $row_recupmail. Lorsque tu fais mysql_fetch_row() il n'y a donc plus de résultat.

Vu que tu a toujours un LIMIT 1 alors le while est inutile, tu ne passera oibligatoirement que maximum une fois dans la boucle.

  1. <?php require_once('Connections/Connect.php'); ?>
  2. <?php
  3. if (!function_exists("GetSQLValueString" )) {
  4. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "" )
  5. {
  6. if (PHP_VERSION < 6) {
  7. $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  8. }
  9.  
  10. $theValue = function_exists("mysql_real_escape_string" ) ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  11.  
  12. switch ($theType) {
  13. case "text":
  14. $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
  15. break;
  16. case "long":
  17. case "int":
  18. $theValue = ($theValue != "" ) ? intval($theValue) : "NULL";
  19. break;
  20. case "double":
  21. $theValue = ($theValue != "" ) ? doubleval($theValue) : "NULL";
  22. break;
  23. case "date":
  24. $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
  25. break;
  26. case "defined":
  27. $theValue = ($theValue != "" ) ? $theDefinedValue : $theNotDefinedValue;
  28. break;
  29. }
  30. return $theValue;
  31. }
  32. }
  33.  
  34. $editFormAction = $_SERVER['PHP_SELF'];
  35. if (isset($_SERVER['QUERY_STRING'])) {
  36. $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
  37. }
  38.  
  39. mysql_select_db($database_Connect, $Connect);
  40. $query_recupmail = "SELECT Civilite, Nom, Prenom, Mail FROM nouveladherent ORDER by num DESC LIMIT 1";
  41. $recupmail = mysql_query($query_recupmail, $Connect) or die(mysql_error());
  42. $totalRows_recupmail = mysql_num_rows($recupmail);
  43. $row = mysql_fetch_row($recupmail);
  44. ini_set('sendmail_from', 'franqui34@gmail.com');
  45.  
  46. // Recuperation des resultats
  47. if($totalRows_recupmail >= 1) {
  48. $Civilite = $row[0];
  49. $Nom = $row[1];
  50. $Prenom = $row[2];
  51. $Mail = $row[3];
  52.  
  53. //Assignation de variable du destinataire
  54. $email = "monmail@xxxx.com";
  55. // echo $email;
  56. // Préparation du mail d'envoi au responsable Informatique
  57. $sujet = "Avis d'une nouvelle adhésion";
  58. // Construction du message
  59. $message = "Attention, réception d'une nouvelle adhésion,"."\r\n\r\n";
  60. $message .= "La personne qui vient de s'inscrire s'appelle : "."\r\n\r\n";
  61. $message .= "$Civilite $Nom $Prenom "."\r\n\r\n";
  62. $message .= "Son mail est : $Mail"."\r\n\r\n";
  63. $message .= "----------------------------------------------------------"."\r\n\r\n";
  64. $message .= "Penser à lui envoyer un mail de confirmation de sa pré-adhésion."."\r\n\r\n";
  65. $message .= "----------------------------------------------------------"."\r\n";
  66. mail($email, $sujet, $message); // Envoi du mail
  67. }
  68. ?>


Voilà qui devrait marcher.

En revanche tu devrait éviter le or die() et privilégier un trigger_error("ton message", E_USER_ERROR).
  • Commenter cette solution |
Score
0
òh
òi
|
Bonjour à tous,
Voilà comment j'ai résolu mon script d'envoi de mail.
<?php require_once('Connections/Connect.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

mysql_select_db($database_Connect, $Connect);
$query_recupmail = "SELECT Civilite, Nom, Prenom, Mail FROM nouveladherent ORDER by num DESC LIMIT 1";
$recupmail = mysql_query($query_recupmail, $Connect) or die(mysql_error());

// Recuperation des champs
while($row=mysql_fetch_row($recupmail)) {
$Civilite = $row[0];
$Nom = $row[1];
$Prenom = $row[2];
$Mail = $row[3];

ini_set('sendmail_from', 'franqui34@gmail.com');

//Assignation de varaible du destinataire
$email = "franqui34@gmail.com";

// Préparation du mail d'envoi au responsable Informatique
$sujet = "Avis d'une nouvelle adhésion";
// Construction du message
$message = "Attention, réception d'une nouvelle adhésion,"."\r\n\r\n";
$message .= "La personne qui vient de s'inscrire s'appelle : "."\r\n\r\n";
$message .= "$Civilite $Nom $Prenom "."\r\n\r\n";
$message .= "Son mail est : $Mail"."\r\n\r\n";
$message .= "----------------------------------------------------------"."\r\n\r\n";
$message .= "Penser à lui envoyer un mail de confirmation de sa pré-adhésion."."\r\n\r\n";
$message .= "----------------------------------------------------------"."\r\n";
mail($email, $sujet, $message); // Envoi du mail
}

?>
Il fonctionne correctement et envoie bien le message à l'interessé.
Merci à Sim07.
Cordialement
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS