Envoi un mail simultanément en php
black_heart
Messages postés
412
Statut
Membre
-
Flog78 -
Flog78 -
Bonjour,
je suis entrain de créer une petite application en php
elle permet de
une base de donné contient : des pays et chaques pays à des agences et chaque agence a une adresse mail
je veux en séléctionant un pays et j'écris un mail
avec une piéce jointe
ce mail s'envoie automatiquement aux mails des agences du pays séléctinné
..
je suis entrain de créer une petite application en php
elle permet de
une base de donné contient : des pays et chaques pays à des agences et chaque agence a une adresse mail
je veux en séléctionant un pays et j'écris un mail
avec une piéce jointe
ce mail s'envoie automatiquement aux mails des agences du pays séléctinné
..
7 réponses
-
Tu remplie une variable avec les e mails (séparer par une virgule) disponible du pays sélectionner avec une boucle while puis avec une boucle for par exemple tu va utiliser la fonction explode (le virgule est le séparateur) pour extraire un e mail pour l'utiliser dans le fonction mail
-
Pour la base de donnée je propose de construire les tables comme ça :
pays (id, nom)
agences (id, nom, #refpays, email, adresse...)
ensuite dans ton code source lorsque l'utilisateur choisi le pays qu'il désire:
$requete = mysql_query ("select * from agences where refpays=".$_POST['id'] );
while($row = mysql_fetch_array($requete))
{
$adresse = $row["email"];
mail ();
}
lien utile :
écrire un mail en php :
http://php.net/manual/en/function.mail.php
mysql querry :
http://php.net/manual/en/function.mysql-query.php
mysql fetch array :
http://php.net/manual/en/function.mysql-fetch-array.php -
voici mon travaill en 2 fichier apart la base de donnée
file .PHP
<?php
mysql_connect('127.0.0.1', 'root', '');
mysql_select_db('expo');
function get_options()
{
$retour=mysql_query('SELECT DISTINCT pays FROM agences');
while($resultat=mysql_fetch_array($retour)){
echo "<option>";
echo $resultat['pays'];
echo "</option>";
}
}
function send($mail, $message)
{
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML.
$message_txt = $message;
$message_html = "<html><head></head><body>$message</body></html>";
//==========
//=====Création de la boundary
$boundary = "-----=".md5(rand());
//==========
//=====Définition du sujet.
$sujet = "mise a jour produits";
//=========
//=====Création du header de l'e-mail.
$header = "From: \"WeaponsB\"<weaponsb@mail.fr>".$passage_ligne;
$header.= "Reply-to: \"WeaponsB\" <weaponsb@mail.fr>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
//=====Création du message.
$message = $passage_ligne.$boundary.$passage_ligne;
//=====Ajout du message au format texte.
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);
//==========
}
function send_mail($pays, $message)
{
$retour1=mysql_query('SELECT * FROM agences WHERE pays=\''.$pays.'\';') OR DIE(mysql_error());
while($resultat1=mysql_fetch_array($retour1)){
send($resultat1['mail'], $message);
}
}
?> -
<?php include('file.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>formulaire</title>
</head>
<body>
<?php if(!isset($_POST['mail'])){ ?>
<center><form action="#" method="post">
<select name="land"><?php get_options(); ?></select>
<textarea rows="10" cols="40" name="mail"></textarea><br />
<input type="submit" value="envoyer" />
</form></center>
<?php }
else { send_mail($_POST['land'], $_POST['mail']); ?>
<p>le mail a été envoyé, <a href="index.php"> retour au formulaire</a></p>
<?php } ?>
</body>
</html> -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
et voici le message d'erreur
Warning: mail() [function.mail]: Failed to connect to mailserver at "127.0.0.1" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\EasyPHP-5.3.3.1\www\file.php on line 63
le mail a été envoyé, retour au formulaire -
C'est tout à fait normal, on ne peux pas envoyer de mail avec EasyPHP simplement car sur EasyPHP il n'y a pas de serveur SMTP d'envoi d'e-mail !
-