Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster -> FAQ BDD, Cours BDD et Sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 05/12/2009, 01h57   #1 (permalink)
Responsable Delphi
 
Avatar de Pedro
 
Date d'inscription: octobre 2003
Localisation: Yavin IV
Messages: 5 355
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 :
 
    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

Le site de mon frangin
Pedro est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/12/2009, 02h32   #2 (permalink)
Membre éprouvé
 
Avatar de guigo
 
Date d'inscription: juin 2006
Messages: 418
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 :
 
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 )
guigo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/12/2009, 02h38   #3 (permalink)
Responsable Delphi
 
Avatar de Pedro
 
Date d'inscription: octobre 2003
Localisation: Yavin IV
Messages: 5 355
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 :
 
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

Le site de mon frangin
Pedro est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/12/2009, 02h58   #4 (permalink)
Responsable Delphi
 
Avatar de Pedro
 
Date d'inscription: octobre 2003
Localisation: Yavin IV
Messages: 5 355
Par défaut

Le premier problème est résolu Sans que je sache réellement pourquoi (Qu'est-ce que je faisais de mal?) mais bon Merci beaucoup!
Par contre, le second reste en suspens...
__________________
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

Le site de mon frangin
Pedro est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/12/2009, 15h18   #5 (permalink)
Modérateur
 
Date d'inscription: octobre 2008
Localisation: Paris
Messages: 590
Par défaut

La fin de ton mail n'est pas conforme à la norme MIME car il manque deux tirets après la fin de la dernière partie (part). C'est comme ça qu'on indique que le multipart est terminé, voir la RFC2046 pour référence, et apparemment cette petite entorse à la norme ne plait pas du tout à gmail.

Pour la ligne "envoyé par" affichée par le webmail, il s'agit d'une info disant que l'expéditeur a été authentifié et tu ne peux probablement rien y changer à la source du message sauf si tu utilises ton propre serveur de mail, c'est une mesure d'antispam/antiphishing mise en oeuvre par google.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/12/2009, 20h29   #6 (permalink)
Responsable Delphi
 
Avatar de Pedro
 
Date d'inscription: octobre 2003
Localisation: Yavin IV
Messages: 5 355
Par défaut

Citation:
Envoyé par estofilo Voir le message
La fin de ton mail n'est pas conforme à la norme MIME car il manque deux tirets après la fin de la dernière partie (part). C'est comme ça qu'on indique que le multipart est terminé, voir la RFC2046 pour référence, et apparemment cette petite entorse à la norme ne plait pas du tout à gmail.
Merci! Effectivement, gmail ne tolère aucune entorse à la règle... Ca marche impec!
Citation:
Envoyé par estofilo Voir le message
Pour la ligne "envoyé par" affichée par le webmail, il s'agit d'une info disant que l'expéditeur a été authentifié et tu ne peux probablement rien y changer à la source du message sauf si tu utilises ton propre serveur de mail, c'est une mesure d'antispam/antiphishing mise en oeuvre par google.
OK, je ferai avec

Merci beaucoup
__________________
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

Le site de mon frangin
Pedro est déconnecté   Envoyer un message privé Réponse avec citation
NEWS PHPFAQ PHPCours PHPSources PHPLivres PHPScripts PHPOutils PHPComparatifsZend Framework

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 08h05.


Vos questions techniques : forum d'entraide PHP - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.