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

Langage PHP Discussion :

Envoi d'e-mail


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Par défaut Envoi d'e-mail
    Bonjour à tous,

    J'ai un petit soucis avec l'envoie de mailing:
    dès que j'ajoute une image ou un background, le mail n'est pas envoyé :/

    mail:
    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
     
    $site   = "www.monsite.fr";
    $from   = "contact@monsite.fr";
    $nom    = "monsite.fr"
     
    $from = $nom." <".$from.">";
     
    $limite = "_----------=_parties_".md5(uniqid (rand()));
     
    $header  = "Reply-to: ".$from."\n";
    $header .= "From: ".$from."\n";
    $header .= "X-Sender: <".$site.">\n";
    $header .= "X-Mailer: PHP\n";
    $header .= "X-auth-smtp-user: ".$from." \n";
    $header .= "X-abuse-contact: ".$from." \n";
    $header .= "Date: ".date("D, j M Y G:i:s O")."\n";
    $header .= "MIME-Version: 1.0\n";
    $header .= "Content-Type: multipart/alternative; boundary=\"".$limite."\"";
     
    $message = "--".$limite."\n";
    $message .= "Content-Type: text/plain; charset=iso-8859-1\n";
    $message .= "Content-Transfer-Encoding: 8bit\n\n";
    $message .= "Votre navigateur n'accèpte pas le HTML.";
     
    $message .= "\n\n--".$limite."\n";
    $message .= "Content-Type: text/html; charset=iso-8859-1\n";
    $message .= "Content-Transfer-Encoding: 8bit\n\n";
    $message .=  $msg;
    $message .= "\n\n--".$limite."--"; 
     
     
    if(!mail($userMail, $subject, $message, $header)){
        echo "Ok";
    }
    else {
        echo "Ko";
    }
    gabarit html:

    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
    $string = "
    <html>
        <body style='margin:0;padding:0;'>
            <table style='width:100%;' cellspacing='0' cellpadding='0'>
                <tr>
                    <td>
                        <div style='width:760px; margin-left:auto; margin-right:auto;'>
                            <center>
                                logo
                            </center>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td style='padding-top:15px;padding-bottom:30px;'>
                        <table cellspacing='0' cellpadding='0' style='margin-left:auto; margin-right:auto;'>
                            <tr>
                                <td width='760px;' valign='top'>
                                    <table style='width:100%;' cellspacing='0' cellpadding='0'>
                                        <tr>
                                            <td style='height:42px; font-size:11px; text-align:center; font-weight:bold; color:#fff; line-height:42px;'>
                                                Message: test
                                            </td>
                                        </tr>
                                        <tr>
                                            <td style='padding:20px; font-size:11px; text-align:justify;'>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td style='height:15px; line-height:15px; margin-bottom:10px;'>
                                                &nbsp;
                                            </td>
                                        </tr>
                                    </table>
                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>
                <tr>
                    <td style='border-top: 2px solid #000000; padding: 10px 0; color:#AAAAAA; font-size: 11px;'>
                        Ce courriel et les documents qui lui sont joints peuvent contenir des
                        informations confidentielles ou ayant un caractère privé. S'ils ne vous sont
                        pas destinés, nous vous signalons qu'il est strictement interdit de les
                        divulguer, de les reproduire ou d'en utiliser de quelque manière que ce
                        soit le contenu. Si ce message vous a été transmis par erreur, merci d'en
                        informer l'expéditeur et de supprimer immédiatement de votre système
                        informatique ce courriel ainsi que tous les documents qui y sont attachés.
                    </td>
                </tr>
            </table>
        </body>
    </html>";
    Ceci marche correctement,
    Pourtant lorsque je remplace "logo" par "<img src='http://monsite.fr/chemin/image.png'" sur un td, rien n'est envoyé;
    Pourtant mail() me renvoie toujours OK, et je n'ai rien dans le spam ni quoi que ce soit.
    Je suis un peu perdu ...

    Merci d'avance

  2. #2
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    406
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 406
    Par défaut
    Je vois pas ou est le lien entre la fonction mail et le background.

    Je tenterais de comprendre:

    -Où est déclaré $userMail parce que tu l'utilise alors qu'elle n'a même pas de valeur.
    $userMail est une variable passé à la fonction mail qui devrait prendre l'adresse du destinataire, si elle est sans valeur , c'est normal qu tu ne reçoive rien.


    -Mail renvoi false si elle envoie le mail.. tu voulais dire l'inverse par le code ci-dessous non?

    c'est plutot : si le mail est envoyé la fonction renvoie un true

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(!mail($userMail, $subject, $message, $header)
     { echo "Ok";}

    Devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(mail($userMail, $subject, $message, $header)
     { echo "Ok";}
    Pourtant mail() me renvoie toujours OK

    -> je doute que c'est un ensemble de faute qui ont fait que tu fais une mauvaise constatation.. si ta fonction renvoi ok c'est qu'elle ne fonctionne pas vu que déjà ta condition est fausse.

    Corrige cela et si ça fonctionne pas c'est qu'il faut revoir ta fonction mail et bien verifié le destinataire

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Par défaut
    Citation Envoyé par ranell Voir le message
    -Où est déclaré $userMail parce que tu l'utilise alors qu'elle n'a même pas de valeur.
    $userMail est une variable passé à la fonction mail qui devrait prendre l'adresse du destinataire, si elle est sans valeur , c'est normal qu tu ne reçoive rien.
    J'ai simplement squeezé la partie, car j'ai 2 class, plusieurs gabarit et fonctions pour les mails, j'ai juste pris les parties intéressantes.
    En l'occurrence ici, $userMail est récupéré dans la bdd et envoyé en fonction

    sendMail($userMail, $subject)

    Citation Envoyé par ranell Voir le message
    -Mail renvoi false si elle envoie le mail.. tu voulais dire l'inverse par le code ci-dessous non?
    Ouais la c'est moi qui me suis enméllé les pinceaux entre les differentes version de ma fonction, mais ce que j'ai dis reste vrai, c'est juste le code copié qui est le mauvais.

    Ma fonction est bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(mail(...)){
     echo "ok";
    } else {
     echo "ko";
    }
    Sinon,
    j'ai continuer a bidouillé le fichier pnd quelques heures, et ça marche enfin,
    Mais je n'ai pas compris ce que j'avais fait pour que ça re marche "lol" ^^

    si je dis pas le bêtise je crois que c'est au changement de:

    $string .= "<img src='/mon/image.jpg' />";
    en
    $string .= "<img src=\"/mon/image.jpg\" />";

    Mais je comprends pas trop pourquoi.
    En tout cas, problème résolu ^^

    Merci d'avoir pris du temps pour m'aider =)

Discussions similaires

  1. L'envois de mail ne m'envois pas de mail ...
    Par PrinceMaster77 dans le forum ASP
    Réponses: 10
    Dernier message: 27/10/2004, 17h28
  2. Envois d'un mail Avec CDont
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 25/10/2004, 18h34
  3. [TIdSMTP] Envoi d'un mail avec authentification ?
    Par BACUS dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/06/2004, 17h18
  4. Envoi d'un mail automatiquement
    Par batmat86 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/06/2004, 10h20
  5. Envoi d'un mail en VBA: outlook ne se lance pas
    Par Hannibal dans le forum VBA Access
    Réponses: 4
    Dernier message: 01/06/2003, 16h24

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