Envoi un mail simultanément en php

black_heart Messages postés 412 Statut Membre -  
 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é
..

A voir également:

7 réponses

gezaakk Messages postés 443 Statut Membre 34
 
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
0
Flog78
 
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
0
black_heart Messages postés 412 Statut Membre 20
 
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);
}
}
?>
0
black_heart Messages postés 412 Statut Membre 20
 
<?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>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
black_heart Messages postés 412 Statut Membre 20
 
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
0
Flog78
 
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.
0
Flog78
 
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 !
0
black_heart Messages postés 412 Statut Membre 20
 
justement , je veux une solution et merci d'avance
0
Flog78
 
Configure un serveur SMTP pour easy php sur ta machine.

tutorial :
http://www.destrucsaweb.com/ressources/phpmyannu/goto_87.php
0