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é
..
A voir également:
- Envoi un mail simultanément en php
- Programmer envoi mail gmail - Guide
- Windows live mail - Télécharger - Mail
- Envoi mail cci - Guide
- Gmail envoyer un mail - Guide
- Publipostage mail - Accueil - Word
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
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);
}
}
?>
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>
<!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
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