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

Bibliothèques et frameworks PHP Discussion :

Des mails en php


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club Avatar de zipzap75
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2017
    Messages : 59
    Points : 45
    Points
    45
    Par défaut Des mails en php
    salut tout le monde , je voudrais faire des mails en php a partir de mon site , mais je rencontre des difficultés , par exemple les mails envoyés ont tous des pieces jointes avec des fichiers en HTM vides ? je ne comprends pas pourquoi , qqn peut il me conseiller ? merci !
    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
    <?php
    // Déclaration de l'adresse de destination.
    $mail = 'etienndes@hotmail.fr'; 
     
    // On filtre les serveurs qui présentent des bogues.
    if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) 
    {$passage_ligne = "\r\n";}
    else{$passage_ligne = "\n";}
     
    //=====Déclaration des messages au format texte et au format HTML.
    $message_txt = "Salut à tous, voici un e-mail envoyé par un script PHP.";
    $message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";
     
    //=====Création de la boundary.
    $boundary = "-----=".md5(rand());
    $boundary_alt = "-----=".md5(rand());
     
    //=====Définition du sujet.
    $sujet = "Hey mon ami !";
     
    //=====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;
    $message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
    $message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
     
    //=====Ajout du message au format texte.
    $message.= "Content-Type: text/plain; charset=\"UTF-8\"".$passage_ligne;
    $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
    $message.= $passage_ligne.$message_txt.$passage_ligne;
     
    //==========
    $message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
     
    //=====Ajout du message au format HTML.
    $message.= "Content-Type: text/html; charset=\"UTF-8\"".$passage_ligne;
    $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
    $message.= $passage_ligne.$message_html.$passage_ligne;
     
    //=====On ferme la boundary alternative.
    $message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
     
    //==========
    $message.= $passage_ligne."--".$boundary.$passage_ligne;
     
    //=====Envoi de l'e-mail.
    mail($mail,$sujet,$message,$header);
    //==========
     
    ?>

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Tu as fais une mauvaise pioche pour le code que tu as trouvé. Pour pas s'embêter on utilise très souvent la classe PHPMailer, je te conseille de faire de même, y'a pas mal de doc y compris en français pour expliquer son fonctionnement.

  3. #3
    Membre du Club Avatar de zipzap75
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2017
    Messages : 59
    Points : 45
    Points
    45
    Par défaut
    ca a l'air sérieux , je vais me pencher dessus et je te tiens au courant , pour l'instant je met pas résolut , et merci

    edit: ok le script marche apparemment bien , sauf un pti probleme d'encodage mais ca devrait etre simple a résoudre , je te remercie beaucoups , par contre peut etre que je demanderais de l'aide apres au cas ou , résolut !

  4. #4
    Membre du Club Avatar de zipzap75
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2017
    Messages : 59
    Points : 45
    Points
    45
    Par défaut
    Rebonjour , j'ai installé et utilisé le script phpmailer pour faire des emails propre en PHP et ca marche tres bien , vraiment c'était un bon conseil de l'utiliser , mon petit probleme est un probleme d'encodage , je ne sais pas comment intégrer une variable contenant de l'utf8 (dans le code cette variable s'appelle $article), a priori je me trompe qq part parce que les accents et autre sont pas pris en compte , voila le code et encore merci pour phpmailer

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
     
    <?php
     
    if (!isset($article)){$article="éééé àààà èèèè çççç àààà";}
    utf8_decode ( $article );
     
            require "PHPMailer-master/class.phpmailer.php";
            $mail = new PHPmailer();
            $mail->IsHTML(true);
            $mail->Host='xxxx';
            $mail->From='xxx';
            $mail->AddAddress($email);
            $mail->AddReplyTo('xxxx');     
            $mail->Subject='Aumone Confirmation Livre d\'or';            
            $mail->Body='
    			
    			
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns:v="urn:schemas-microsoft-com:vml">
    <head>
    <meta http-equiv="content-type" content="text/html" charset="utf-8" />
    <meta name="viewport" content="width=device-width;initial-scale=1.0;maximum-scale=1.0;" />
    </head>
    
    <body style="background-image: url(http://www.aumone.fr/mails/carrelage.png); color: rgba(0,0,0,1);">
    
    <img src="http://www.aumone.fr/mails/bordure.png" width="1" height="100" alt=""/>
    
    <table width="800" border="0" align="center" cellpadding="0" cellspacing="0" >
      <tbody>
        <tr>
          <td height="110" colspan="3" align="center" valign="baseline" background="http://www.aumone.fr/mails/top.png" ></td>
        </tr>
        <tr>
          <td width="30" height="200" rowspan="3" align="center" background="http://www.aumone.fr/mails/cote.png"><h1>&nbsp;</h1></td>
          <td width="728" height="20" align="center" background="http://www.aumone.fr/mails/papier_de_lin.png" style="font-size: 24px; font-family: Gotham, \'Helvetica Neue\', Helvetica, Arial, sans-serif; font-weight: bold; text-align: left;" >Salutations !</td>
          <td width="30" rowspan="3" align="center" background="http://www.aumone.fr/mails/cote.png">&nbsp;</td>
        </tr>
        <tr>
          <td align="center"  height="92" background="http://www.aumone.fr/mails/papier_de_lin.png" bgcolor="#B02B2D" style="font-weight: ; font-style: normal; color: rgba(0,0,0,1); font-size: 20px; font-family: \'Gill Sans\', \'Gill Sans MT\', \'Myriad Pro\', \'DejaVu Sans Condensed\', Helvetica, Arial, sans-serif;">Bonjour monsieur ou madame '.$pseudo[0].', vous avez entr&eacute; un commentaire dans le livre d\'or de notre site <a href="http://www.aumone.fr">Aumone.fr</a> le '.$date.'. Votre message est le suivant : "' . $article . '" .Pour le confirmer et le rendre visible a tous vous devez confirmer votre email en cliquant sur le lien , ceci n\'est ni une farce ni un virus . On vous remercie beaucoups de participer !</td>
        </tr>
        <tr>
          <td align="center"  height="123" background="http://www.aumone.fr/mails/papier_de_lin.png" bgcolor="#B02B2D" style="font-weight: bold; font-style: italic; color: rgba(0,0,0,1); font-size: 20px;"><img src="http://www.aumone.fr/mails/check.png" width="300" height="100" alt=""/></td>
        </tr>
        <tr>
          <td height="32" colspan="3" align="center" valign="middle" background="http://www.aumone.fr/mails/bottom.png">&nbsp;</td>
        </tr>
      </tbody>
    </table>
    <img src="http://www.aumone.fr/mails/bordure.png" width="1" height="100" alt=""/>
    
    </body>
    </html>
    			
    			';
            if(!$mail->Send()){
              echo $mail->ErrorInfo; 
            }
            else{
     
              echo 'Mail envoyé avec succès';
            }
            $mail->SmtpClose();
            unset($mail);
     
    ?>

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Je vois dans la doc que tu peux configurer le charset avec $mail->CharSet = 'UTF-8';.

    A quoi sert la ligne utf8_decode ( $article ); ? Si tu travaille en utf-8 je ne vois pas l'utilité de cette ligne. Et même si elle avait une utilité il faudrait exploiter le résultat en faisant $article = utf8_decode ( $article ); mais tu ne devrais pas avoir besoin de cela si tu travaille en utf-8 et que tu as configuré le charset de phpmailer en utf-8.

    Ensuite pour des problèmes plus généraux concernant l'encodage, il faudrait savoir avec quelle version de php tu travaille. A partir de php5.6 c'est l'utf-8 par défaut donc tu n'as rien à faire, mais pour les versions php<5.6 il faudrait envoyer une entête php pour spécifier l'utf-8.

    Par ailleurs, si tu écris du texte en dur dans le fichier il faut que ton fichier soit enregistré au format unicode-utf-8.

    Fais aussi attention d'envoyer une version text-plain pour le cas où le client de messagerie n'accepte pas le html.

    Après concernant le fonctionnement détaillé de phpmailer, je ne peux pas t'en dire beaucoup plus car je ne l'utilise pas. Je te l'ai conseillée car c'est la principale référence connue pour son efficacité et utilisée par beaucoup de développeurs php ainsi que dans de nombreuses applications comme WordPress, Drupal, Joomla, etc...

    J'utilise pour ma part un code perso mais je ne peux pas le conseiller car j'ai déjà eu des problèmes avec la messagerie Hotmail (connue pour être très pénible car certains mails peuvent parfois être considérés comme des span) et précisément phpmailer permet d'éviter au maximum ce genre de problème

    Au passage tu t'embête un peu avec ton entête strict XHTML, on emploie aujourd'hui plus volontiers les entêtes html5 plus conviviales, d'autant plus que le html5 permet beaucoup plus de choses.

  6. #6
    Membre du Club Avatar de zipzap75
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2017
    Messages : 59
    Points : 45
    Points
    45
    Par défaut
    merci , voila c'est résolut Je te remercie beaucoups

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

Discussions similaires

  1. Problèmes de caractères spéciaux dans des mails en php
    Par ROLAND-01 dans le forum Symfony
    Réponses: 2
    Dernier message: 27/06/2016, 14h33
  2. Envoyer des mails en php
    Par Snap luvs pastèque dans le forum Langage
    Réponses: 2
    Dernier message: 16/02/2015, 22h34
  3. est ce que client peut envoyer des mail en php ?
    Par piloupi dans le forum Langage
    Réponses: 4
    Dernier message: 12/07/2009, 00h03
  4. [Mail] souci pour envoyer des e-mails en php
    Par nemines1 dans le forum Langage
    Réponses: 4
    Dernier message: 19/05/2007, 13h07
  5. [Mail] Envoyer des mails simplement avec PHP
    Par mailou dans le forum Langage
    Réponses: 4
    Dernier message: 29/01/2006, 17h21

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