[Résolu] Script d'envoi de mail
Forum Programmation : [Résolu] Script d'envoi de mail
Lire la meilleure réponse, apportée par SiM07.
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
}
?>
Message édité par SiM07 le 07-10-2009 à 11:26:07
Vu que tu a toujours un LIMIT 1 alors le while est inutile, tu ne passera oibligatoirement que maximum une fois dans la boucle.
Code :
|
Voilà qui devrait marcher.
En revanche tu devrait éviter le or die() et privilégier un trigger_error("ton message", E_USER_ERROR).
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.
Code :
|
Voilà qui devrait marcher.
En revanche tu devrait éviter le or die() et privilégier un trigger_error("ton message", E_USER_ERROR).
Répondre à SiM07
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
Il y a 1457 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

SiM07