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 :

Problème d'envoi de mail vers boite gmail


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut Problème d'envoi de mail vers boite gmail
    Salut à tous

    Je suis en train de créer un site pour un ami qui envoie des mails autos lorsqu'un visiteur écrit un message.
    J'utilise la fonction mail() de php mais je rencontre quelques soucis:

    • Si j'ouvre le mail reçu sous Thunderbird, il s'ouvre sans problème en HTML et texte. Par contre, si je l'ouvre en passant par le webmail de gmail, le mail est vide.
    • Toujours en ouvrant le mail dans le webmail de gmail, si je clique sur afficher les détails, il me met bien les informations correctes du header sauf une info "envoyé par" qui donne "9.mail-out.ovh.net". Ca fait pas très propre et j'aimerais, comme dans d'autres mails que j'ai vérifié afficher soit rien, soit autre chose mais je ne sais pas comment faire.

    En ce qui concerne le premier problème et avant qu'on me le dise, mes lignes dans le mail sont terminées par \n et pas \r\n.
    Voici le 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
    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
     
        function SendMail() {
            $destinataire='unmail@gmail.com';
            $email_expediteur='no-reply@monsite.com';
            $email_reply='no-reply@monsite.com';
            $sujet = 'Un nouveau message!!';
     
            $message_texte = 'Test';
            $message_html = 'Ceci est un <b>Test</b>';
     
            //-----------------------------------------------
            //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
            //-----------------------------------------------
     
            $frontiere = '_' . md5(uniqid(mt_rand())) . '_';
     
            //-----------------------------------------------
            //HEADERS DU MAIL
            //-----------------------------------------------
     
            $headers = 'From: "Service messages" <'.$email_expediteur.'>'."\n";
            $headers .= 'Return-Path: '.$email_reply."\n";
            $headers .= 'Reply-To: '.$email_reply."\n"; 
            $headers .= 'X-Sender: www.monsite.com'."\n";
            $headers .= 'X-mailer: php'."\n";
            $headers .= 'Importance: Normal'."\n";
            $headers .= 'MIME-Version: 1.0'."\n";
            $headers .= 'Content-Type: multipart/alternative;'."\n";
            $headers .= '    boundary="'.$frontiere.'"'."\n";
     
            //-----------------------------------------------
            //MESSAGE TEXTE
            //-----------------------------------------------
     
            $message .= '--'.$frontiere."\n";
            $message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
            $message .= 'Content-Transfer-Encoding: quoted-printable'."\n\n";
            $message .= $message_texte."\n\n";
     
            //-----------------------------------------------
            //MESSAGE HTML
            //-----------------------------------------------
            $message .= '--'.$frontiere."\n";
            $message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
            $message .= 'Content-Transfer-Encoding: quoted-printable'."\n\n";
            $message .= $message_html."\n\n";
     
            $message .= '--'.$frontiere."\n";
     
            if(mail($destinataire, $sujet, $message, $headers))
            {
              return 1;
            }
            else
            {
              return 0;
            }
        }
    Désolé pour le monsite.com mais je ne peux pas divulguer le nom du site...
    Bref, j'ai beau retourner le problème dans tous les sens, comparer avec d'autres mails mais je ne trouve pas.
    D'ailleurs, dans cette source, il y a pas mal de "restes" de mes tests Je pense d'ailleurs qu'une bonne partie du header est inutile.

    Je débute donc soyez indulgents

    Merci d'avance
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  2. #2
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Salut,
    Pour le truc du détail j'avoue que je ne sais pas et d'ailleurs je serais preneur d'une solution... Mais je ne trouve pas ça aberrent de connaitre l'adresse du serveur d'envoi pour les destinataires (si il veut faire un controle sans forcement ouvrir le mail en emp...)

    pour le code qui marche sur gmail moi j'utilise :

    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
     
    function EnvoieEmail($O, $Nom,$Prenom, $Message, $Email)
    {
    	// Le destinataire du mail
    	$destinataire = "moi@monsite.fr";
     
    	 // objet du mail
    	$objet = $O;
    	$mail_html  = 'MIME-Version: 1.0' . "\n";
    	$mail_html .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
    	$mail_html .= "From:$Email" . "\n";
     
    	$Msg="coucou : ".$Nom." ".$Prenom." <br/>".$Message;
    	// on envoit le mail
    	return mail($destinataire, $objet, $Msg, $mail_html);
    }
     
    //tu peux faire une verif de l'adresse avec 
    function VerifEmail($adresse) 
    	{
    		$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
    		   if(preg_match($Syntaxe,$adresse))
    				return true;
    		   else
    			 return false;
    	}
    Tchusss (et te couche pas trop tard )

  3. #3
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Merci pour ta réponse
    Citation Envoyé par guigo Voir le message
    Salut,
    Pour le truc du détail j'avoue que je ne sais pas et d'ailleurs je serais preneur d'une solution... Mais je ne trouve pas ça aberrent de connaitre l'adresse du serveur d'envoi pour les destinataires (si il veut faire un controle sans forcement ouvrir le mail en emp...)
    Oui enfin bon, comme les personnes auxquelles s'adressent ce mail seront les admins, je pensent qu'ils savent déjà d'où ça vient Donc bon, c'est vrai, c'est du rouge à lèvres mais c'est surtout pour satisfaire ma curiosité
    Citation Envoyé par guigo Voir le message
    pour le code qui marche sur gmail moi j'utilise :

    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
     
    function EnvoieEmail($O, $Nom,$Prenom, $Message, $Email)
    {
        // Le destinataire du mail
        $destinataire = "moi@monsite.fr";
     
         // objet du mail
        $objet = $O;
        $mail_html  = 'MIME-Version: 1.0' . "\n";
        $mail_html .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
        $mail_html .= "From:$Email" . "\n";
     
        $Msg="coucou : ".$Nom." ".$Prenom." <br/>".$Message;
        // on envoit le mail
        return mail($destinataire, $objet, $Msg, $mail_html);
    }
     
    //tu peux faire une verif de l'adresse avec 
    function VerifEmail($adresse) 
        {
            $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
               if(preg_match($Syntaxe,$adresse))
                    return true;
               else
                 return false;
        }
    OK en fait, tu fais au plus simple. Ce qui n'est pas une mauvaise chose finalement
    Je m'en vais tester sans toutes les fioritures que j'ai mises.
    Citation Envoyé par guigo Voir le message
    Tchusss (et te couche pas trop tard )
    C'est vrai ça! C'est quoi c'est gens qui dev à 2h30 du mat'
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/01/2014, 00h57
  2. Réponses: 2
    Dernier message: 01/04/2011, 16h18
  3. Envois de mail vers Gmail, impossible
    Par Senaku-seishin dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 16/02/2011, 16h30
  4. Postfix et envoi vers boite gmail
    Par lavazavio dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 10/10/2008, 14h52
  5. problème envoi de mail vers l'extérieur
    Par cavocavu dans le forum Administration système
    Réponses: 2
    Dernier message: 16/07/2008, 11h22

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