IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Envoi e-mail en html [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut Envoi e-mail en html
    Bonjour,

    Sous PHP5 et mysql j'envoi ce mail au format HTML, je souhaiterais savoir comment envoyer en boucle ce message qui puisse lire une table contenant la liste de tous les destinataires.

    Comment modifier la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    &dest = "essai@fournisseur.com";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    //Envoi e-mail en format HTML
    <?php
    //destinataire du mail
    &dest = "essai@fournisseur.com";
    //titre du message, dans objet
    &objet = "Information importante de site.fr";
    //contenu HTML du mail
    &texte = "<html><head><title>Envoi de mail HTML</title></head>
    <body>
    <div style="text-align: center;">
    <fieldset>
    <h1>Votre carte de visite sur le web</h1>
    //1 ere image
    img style="width: 500px; height: 295px;" src=\"http://www.site.fr/images/img1_mail.jpg\" alt=\"Cliquez pour afficher l'image\" />
    <p>Suivre ce lient<br/>
    <a href=\"http://www.site.fr\">contact@site.fr</a>
    </fieldset>
    </div>
    </body>
    </html>";
    //en têtes  MIME indispensables pour un mail en HTML
    &entete="MIME-Version: 1.0";
    &entete .= "Content-Type:text/HTML;charset=iso-8859-1\n";
    &entete .= "Content-Transfert-Encoding: 8bit\n";
    //adresse d'origine
    &entete .= "From: contact@site.fr \n";
    //envoi du mail
    if (mail(&dest,&objet,&texte,&entete))
    {
    print "E-mail correctement envoyé<br> <br/>";
    {
    else
    {
    print "E-mail non envoyé<br> <br/>";
    }
    ?>


    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu fais une requete et une boucle while/fetch_array comme on le fait classiquement quand on lit une base de donnée.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonjour,

    J'ai un petit soucis avec mon code, enfin je pense.
    J'ai l'impression de ne pas pouvoir envoyer des e-mails !
    Comment tester chez mon hébergeur ?
    Avec ce code, j'obtiens une liste d'extension, mais celà ne me dit rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
    $tabext = get_loaded_extensions();
    natcasesort($tabext);
    foreach($tabext as $cle=>$valeur)
    {
    echo "<h3>Extension $nbsp;$valeur </h3> ";
    $fonct = get_extension_funcs($valeur);
    sort($fonct);
    for($i=0;$i<count($fonct);$i++)
    {
    echo $fonct[$i],"&nbsp; &nbsp;&nbsp;\n";
    echo "<hr />";
    }
    }
    ?>
    Quelle est l' extension concernée ?

    Merci

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    La fonction mail() fait partie du noyau PHP.
    Certains hebergeurs peuvent la desactiver ou imposer des conditions ... c'est a voir avec ton hebergeur.

    Pour rappel, la configuration de PHP s'obtient avec phpinfo()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonjour,

    Ok ça fonctionne, j'ai confondu le signe $ et & dans mon code !!!

    Il me reste à trouver comment afficher des images et effectuer plusieurs envoi à partir d'une table.

    Merci

  6. #6
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonjour,

    Super j'ai réussi mon envoi d'e-mail en php...avec image etc etc.
    Avec ce style de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <?php
    $mail = 'adressemail@fournisseur.fr';
    srand((double)microtime()*1000000);
    $boundary = md5(uniqid(rand()));
     
    $titre = "Jai le plaisir de vous inviter sur mon site.";
    $header ="From: message <nom@adressemail.fr>\n";
    $header .="Reply-To: nom@adressemail.fr \n";
    $header .="MIME-Version: 1.0\n";
    $header .="Content-Type: multipart/alternative;boundary=$boundary\n"; 
    $message = "\nThis is a multi-part message in MIME format.";
    $message .="\n--$boundary\nContent-Type: text/html;charset=\"iso-8859-1\"\n\n";
    $message .="ici mon message1.\n";
    $message .="ici mon message2.\n";
    $message .="ici mon message3.\n";
    $message .="ici mon message4.\n";
    $message .="ici mon message5.\n";
    $message .="\n--$boundary--\n end of the multi-part";
    mail($mail,$titre,$message,$header);
    echo "Mail correctement envoyé...";
    ?>
    J'essai maintenant d'envoyer plusieurs e-mail à partir d'une table.
    sabotage me dit :
    Tu fais une requete et une boucle while/fetch_array comme on le fait classiquement quand on lit une base de donnée.

    Humm , classiquement !!
    Je dois modifier cette ligne : Je bidouille, je cherche, je copie et j'obtiens ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <?php
     
    $id = $_mysql_connect("localhost", "root", "");
     
    $bdd = mysql_select_db("ma BDD", $connexion);
     
    $sql = 'SELECT tbl_mail FROM mail WHERE id = '. $id;
     
    $req = mysql_query($sql) OR die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    while ($data = mysql_fetch_array($req))
     
    {
     
    $email = $data->mail;
     
    $mail = $email;
     
    //ici le reste du code qui ne change pas
     
    ?>
    Suis-je sur la bonne route ?

    Merci pour vos conseils.

  7. #7
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonjour,

    La nuit porte conseil, j'ai modifié mon code, je veux bien le reconnaître (un peu étrange ).
    J'ai réussi à sortir ces quelques lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    $connection=mysql_connect("localhost", "root", "");
    $database=mysql_select_db('AA9BN87K1',$connection);
    $sql="SELECT mail FROM tbl_mail";
    mysql_query($sql) or die(mysql_error()); 
    $req=mysql_query($sql,$connection) or die (mysql_error());
    $mailer=mysql_fetch_array($req);
    while($mailer['mail']!="") 
    $mail=$mailer['mail'];
    srand((double)microtime()*1000000);
    $boundary = md5(uniqid(rand()));
     
    $titre = "Jai le plaisir de vous inviter sur mon site.";
    $header ="From: message <nom@adressemail.fr>\n";
    $header .="Reply-To: nom@adressemail.fr \n";
    $header .="MIME-Version: 1.0\n";
    $header .="Content-Type: multipart/alternative;boundary=$boundary\n"; 
    $message = "\nThis is a multi-part message in MIME format.";
    $message .="\n--$boundary\nContent-Type: text/html;charset=\"iso-8859-1\"\n\n";
    $message .="ici mon message1.\n";
    $message .="ici mon message2.\n";
    $message .="ici mon message3.\n";
    $message .="ici mon message4.\n";
    $message .="ici mon message5.\n";
    $message .="\n--$boundary--\n end of the multi-part";
    mail($mail,$titre,$message,$header);
    echo "Mail correctement envoyé...";
    Cette fois il semble ce passer quelques choses sur le serveur, mais ! j'obtiens cette ligne :

    Fatal error: Maximum execution time of 15 seconds exceeded in /var/www/data/woo/A/A/9/B/AA9BN87K/envoi_mail_html.php on line 9

    Ou me suis-je trompé ?
    Ma base de données = AA9BN87K1 ma table = tbl_mail et elle contient une colonne id et une colonne mail..

    Ma ligne de code est-elle correctement codée ?
    Notamment ce morceau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $connection=mysql_connect("localhost", "root", "");
    $database=mysql_select_db('AA9BN87K1',$connection);
    $sql="SELECT mail FROM tbl_mail";
    mysql_query($sql) or die(mysql_error()); 
    $req=mysql_query($sql,$connection) or die (mysql_error());
    $mailer=mysql_fetch_array($req);
    while($mailer['mail']!="") 
    $mail=$mailer['mail'];
    Bien cordialement

  8. #8
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonjour,

    Je cherche encore et encore , j'utilise un livre (PHP5 de chez EYROLLES) je ne n'est pas une mince affaire.
    Je pense ne pas être loin de la vérité, si si
    Voici en début de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    include("connexobjet.inc.php");
    $idcom=connexobjet("tbl_mail","myparam");
    $sql="SELECT * FROM tbl_mail ORDER BY mail";
    $result=$idcom->query($requete);
    if(!$result)
    {
    echo "Lecture impossible";
    }
    else
    {
    while($mailer=$result->fetch_array(MYSLI_NUM))
    $mail=$mailer['mail'];
    Puis en fin de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    mail($mail,$titre,$message,$header);
    }
    echo "Mail correctement envoyé...";
    $result->close();
    $idcom->close();
    Suis-je sur la bonne voie ??

    Merci de votre aide, si précieux.

  9. #9
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut Envoi mail html en boucle d'après un tableau
    Bonsoir,

    Désolé de vous ennuyer avec ce sujet, mais je n'y arrive pas .
    Comment créer une boucle qui lirait un tableau contenant une liste de mail ?

    Voici mon code qui normalement fonctionne bien avec l'envoi d'un mail unique, j'ai rajouté (while et fetch_array) comme me la dit Sabotage.

    Mais ça ne fonctionne pas, j'ai besoin d'un expert.
    Voici le code en entier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <?php
    @MYSQL_CONNECT("localhost","root","" );
    @mysql_select_db("AA7BA53K1" );
    $query  = "SELECT mail FROM tbl_mail WHERE id=$id";
    $result = @MYSQL_QUERY($query);
    while ($row = mysql_fetch_array ($result))
    {
    $mail = $row["mail"], $row["tbl_mail"] ;
    }
    $email = '$mail';
    srand((double)microtime()*1000000);
    $boundary = md5(uniqid(rand()));
    $titre = "Lettre d'info de Bruno.";
    $header ="From: Bruno <contact@orange.fr>\n";
    $header .="Reply-To: contact@orange.fr \n";
    $header .="MIME-Version: 1.0\n";
    $header .="Content-Type: multipart/alternative;boundary=$boundary\n"; 
    $message = "\nThis is a multi-part message in MIME format.";
    $message .="\n--$boundary\nContent-Type: text/html;charset=\"iso-8859-1\"\n\n";
    $message .= "<html><body bgcolor=\"#7189ab\"><div align=\"center\"><table width=\"95%\"><tr><td bgcolor=\"#FFFFFF\">\n";
    $message .="Madame, Monsieur,\n";
    $message .="<br/><br/>Voici mon message,\n";
    $message .="<br/>Voici mon message.\n";
    $message .="<br/><img src=\"http://www.le site.fr/images/img1.jpg\" >\n";
    $message .="\n--$boundary--\n end of the multi-part";
    mail($email,$titre,$message,$header);
    echo "Mail correctement envoyé...";
    ?>
    Voici mon message d'erreur généré par PHP:

    Parse error: syntax error, unexpected ',' in /var/www/data/woo/A/A/7/B/AA7BA53K/envoi_mail_html.php on line 8

    La ligne 8 correspondrait à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    {
    $mail = $row["mail"], $row["tbl_mail"] ;
    }
    Merci pour votre aide..

    Bien cordialement

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est quoi cette virgule qui se balade au milieu de tes variables ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    En fait, lorsque tu as plusieurs destinataires,
    il faut concaténer les adresses en les séparant par des virgules.
    Ce que tu peux faire de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $tbl_mail = array();
    while ($row = mysql_fetch_array ($result))
    {
        $tbl_mail[] = $row["mail"];
    }
    $email = implode(',',$tbl_mail);
    Voilà déjà pour ton erreur à la ligne 8.
    Fred

  12. #12
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Par défaut
    Waou, je ne veux pas vous contrarier
    mais n'est il pas plus simple, intéressant d'utiliser une classe toute faite (suivie, maintenue et pérène)
    PHP Mailer

  13. #13
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut
    plop plop

    perso j'utilise cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    //$expediteur = $_SESSION['mail'];
    	//joint un fichier pdf au mail
    	//permet d'envoyer le mail à un utilisateur ou plusieurs => $destinataire est un tableau de 1 ou n utilisateurs
    	//function appelé dans :
    	//- pdfgen_ok_peinture.php
    	function mail_validation_peinture($num_bon,$nom_bon,$expediteur,$destinataire,$nom_piece_jointe,$message)
    	{
    		$num_destinataire=count($destinataire);
    		$nom_expediteur="Alerte_validation_peinture";
     
    		for ($i=0;$i<$num_destinataire;$i++)
    		{
    			$uploaddir = './_state/';
    			$upload_file = $uploaddir .$nom_piece_jointe;
    			$attach_type =  "application/pdf";
    			$attach_name = $nom_piece_jointe;
    			$destinataires = $destinataire[$i];
    			$objet="Validation de la peinture : bon peinture N°$nom_bon";
    			//$message="Le bon peinture n°$num_bon est validé par la peinture. <br />
    			//Veuillez imprimer la pièce jointe.<br />";
     
    			if (file_exists($upload_file)) 
    			{
    				$file = fopen($upload_file, "r");
    				$contents = fread($file, filesize($upload_file));
    				$encoded_attach = chunk_split(base64_encode($contents));
    				fclose($file);
    			} 
     
    			$mailheaders  = "From: $nom_expediteur\n";
    			$mailheaders .= "Importance:1\n";
    			$mailheaders .= "Reply-To: $expediteur\n";
    			//$mailheaders .= "To: $destinataires\n";
    			$mailheaders .= "MIME-version: 1.0\n";
    			$mailheaders .= "Content-type: multipart/mixed; ";
    			$mailheaders .= "boundary=\"Message-Boundary\"\n";
    			$mailheaders .= "Content-transfer-encoding: 7BIT\n";
    			$mailheaders .= "X-attachments: $attach_name\n";
     
    			$body_top = "--Message-Boundary\n";
    			$body_top .= "Content-type: text/html;charset=ISO-8859-1\n";
    			$body_top .= "Content-transfer-encoding: 7BIT\n";
     
    			$msg_body = $body_top.$message;
     
    			$msg_body .= "\n\n--Message-Boundary\n";
    			$msg_body .= "Content-type: $attach_type; name=\"$attach_name\"\n";    
    			$msg_body .= "Content-Length: " . filesize($upload_file) . "\n";    
    			$msg_body .= "Content-transfer-Encoding: BASE64\n";
    			$msg_body .= "Content-disposition: attachment; filename=\"$attach_name\"\n\n";
    			$msg_body .= "$encoded_attach\n";
    			$msg_body .= "--Message-Boundary--\n";
     
    			mail($destinataires,$objet,$msg_body,$mailheaders);
     
    		}
    	}
    je te laisse regarder

    ++

  14. #14
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonjour à tous,

    Merci, merci pour votre aide.
    Celà fait beaucoup d'information, je verrais PHPMailer plus tard (encore des choses à apprendre )..
    Je suis la démarche de Micetf, dont voici mon code corrigé...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
    @MYSQL_CONNECT("localhost","root","" );
    @mysql_select_db("AA9BA33K1" );
    $query  = "SELECT mail FROM tbl_mail WHERE id=$id";
    $result = @MYSQL_QUERY($query);
    while ($row = mysql_fetch_array ($result))
    {
        $tbl_mail[] = $row["mail"];
    }
    $email = implode(',',$tbl_mail);
    srand((double)microtime()*1000000);
    $boundary = md5(uniqid(rand()));
    $titre = "Lettre d'info de Bruno.";
    $header ="From: Bruno <contact@orange.fr>\n";
    $header .="Reply-To: contact@orange.fr \n";
    $header .="MIME-Version: 1.0\n";
    $header .="Content-Type: multipart/alternative;boundary=$boundary\n"; 
    $message = "\nThis is a multi-part message in MIME format.";
    $message .="\n--$boundary\nContent-Type: text/html;charset=\"iso-8859-1\"\n\n";
    $message .= "<html><body bgcolor=\"#7189ab\"><div align=\"center\"><table width=\"95%\"><tr><td bgcolor=\"#FFFFFF\">\n";
    $message .="Madame, Monsieur,\n";
    $message .="<br/><br/>Voici mon message,\n";
    $message .="<br/>Voici mon message.\n";
    $message .="<br/><img src=\"http://www.le site.fr/images/img1.jpg\" >\n";
    $message .="\n--$boundary--\n end of the multi-part";
    mail($email,$titre,$message,$header);
    echo "Mail correctement envoyé...";
    ?>
    Alors, maintenant j'ai deux messages d'erreurs, et dont la réponse Echo..!
    Mail correctement envoyé...

    Surprise, aucun mail n'arrive !! Que faire ?

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/data/woo/A/A/9/B/AA9BA33K/envoi_mail_html.php on line 6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($row = mysql_fetch_array ($result))
    Warning: implode() [function.implode]: Bad arguments. in /var/www/data/woo/A/A/9/B/AA9BA33K/envoi_mail_html.php on line 10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $email = implode(',',$tbl_mail);
    Mail correctement envoyé...

    Merci à vous.
    Bien cordialement

  15. #15
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Si tu veux envoyer un mail à toutes les adresses contenues dans la table,
    tu n'as pas à rajouter de clause WHERE. Une requête comme celle-ci devrait suffir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query  = "SELECT mail FROM tbl_mail";
    Sinon, la clause WHERE n'est certainement pas celle-ci.
    La variable $id n'existe pas dans ton script.
    Voilà pour le premier warning.

    Le deuxième warning, lui est une conséquence du premier.
    En effet, ta requête étant invalide,
    la boucle while n'est pas parcourue,
    la table $tbl_mail n'est pas créée
    et l'implode ne peut être exécuté
    sur une variable qui n'existe pas.
    Tu aurais pu éviter cet avertissement
    en initialisant le tableau ($tbl_mail = array())
    juste avant la boucle while.

    Fred

  16. #16
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonsoir,

    Micetf, formidable...Voici le code complet si cela peut servir à quelqu'un..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <?php
    @MYSQL_CONNECT("localhost","root","" );
    @mysql_select_db("AA9BA33K1" );
    $query  = "SELECT mail FROM tbl_mail";
    $result = @MYSQL_QUERY($query);
    while ($row = mysql_fetch_array ($result))
    {
        $tbl_mail[] = $row["mail"];
    }
    $email = implode(',',$tbl_mail);
    srand((double)microtime()*1000000);
    $boundary = md5(uniqid(rand()));
    $titre = "Lettre d'info de Bruno.";
    $header ="From: Bruno <contact@orange.fr>\n";
    $header .="Reply-To: contact@orange.fr \n";
    $header .="MIME-Version: 1.0\n";
    $header .="Content-Type: multipart/alternative;boundary=$boundary\n"; 
    $message = "\nThis is a multi-part message in MIME format.";
    $message .="\n--$boundary\nContent-Type: text/html;charset=\"iso-8859-1\"\n\n";
    $message .= "<html><body bgcolor=\"#7189ab\"><div align=\"center\"><table width=\"95%\"><tr><td bgcolor=\"#FFFFFF\">\n";
    $message .="Madame, Monsieur,\n";
    $message .="<br/><br/>Voici mon message,\n";
    $message .="<br/>Voici mon message.\n";
    $message .="<br/><img src=\"http://www.le site.fr/images/img1.jpg\" >\n";
    $message .="\n--$boundary--\n end of the multi-part";
    mail($email,$titre,$message,$header);
    echo "Mail correctement envoyé...";
    ?>
    Maintenant reste à savoir comment utiliser Bcc pour personnaliser les mail individuellement.
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoi de mail en Html
    Par neil_lahlou dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 24/12/2006, 21h10
  2. [Mail] Problème envoi e-mail format HTML
    Par Sayrus dans le forum Langage
    Réponses: 13
    Dernier message: 19/12/2006, 14h57
  3. [mail] Timeout sur envoi de mails en HTML
    Par NorthernLights dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 05/12/2006, 10h35
  4. envoi de mail format HTML
    Par heteroclite dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 14/10/2006, 11h54
  5. [VBS & CDO] Envois de mail format HTML
    Par nonotoubo dans le forum VBScript
    Réponses: 2
    Dernier message: 23/08/2006, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo