Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 14/03/2011, 02h42   #1
Invité régulier
 
Inscription : février 2010
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 15
Points : 9
Points : 9
Par défaut Problème avec l'envois de mail (Sendmail)

Hello à tous,

Voilà j'ai configurer mon serveur pour qu'il puisse "envoyer" des mails via des formulaire et autres (réceptions d'un message privé d'un membre, nouveaux message sur le forum etc ...)
Code :
1
2
3
4
5
6
7
8
9
 
<?php
	$headers ='From: admin@monsite.com'."\n";       
	$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";     
	$headers .='Content-Transfer-Encoding: 8bit';    
 
	if(mail('uneadresemail@hotmail.com', 'Bienvenue', 'test', $headers)) echo 'ca marche';
	else echo 'ca ne marche malheureusement pas';
?>
(note : ceci est juste pour la démo, j'utilise les même header sur mon site !)
Malheureusement le mail ne s'envoie pas si c'est envoyé vers hotmail (je n'ai tester que lui pour le moment avec gmail) sauf vers gmail la le mail est envoyé.
Dans les 2 cas la fonction renvois true ...

Bref je ne sais pas si vous avez une idée (j'ai eu beaucoup de mal a faire marcher sendmail mais j'y suis parvenu mais que pour gmail apparemment ...) que ça soit du coté de sendmail ou php =)

Merci d'avance de votre aide !
Cryde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 07h59   #2
Membre habitué
 
Inscription : décembre 2007
Messages : 181
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 181
Points : 140
Points : 140
Le problème vient clairement de tes Header, pour une portabilite vers toutes les boites je te conseil la classe phpmailer, elle est presente dans les tuto developpez je te laisse fouiller et l'installer, c'est simple complet efficace
roduce est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/03/2011, 12h00   #3
Invité régulier
 
Inscription : février 2010
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 15
Points : 9
Points : 9
Ce qui est assez "marrant" c'est qu'avant de changer d'hébergement, donc de passer d'un mutualisé à Gandi (gestion du serveur par ssh et installation de toutes les composantes !) la fonction mail avec les headers que j'ai mis ici marchait très bien ...

Mais je vais quand même tester cette classe ...
Si quelqu'un a une idée quant à un problème que sendmail peut poser avec hotmail, qu'il me le dise ! =)
Cryde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 12h21   #4
Invité régulier
 
Inscription : février 2010
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 15
Points : 9
Points : 9
Donc comme je le pensais, la classe que tu m'as conseillé ne change absolument rien.

J'ai aussi testé sur un serveur de mail "facile" : http://www.keepmymail.com
Ca ne passe pas non plus ... A croire que mon serveur aime Gmail !

Personne n'a d'idée ?
Cryde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 14h54   #5
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Bonjour,

L'envoi d'email est, depuis la lutte contre le spam, devenu difficile compliqué contraignant.

Tout d'abord, si tu es en mutualisé, tu partages une ip voire, avec un peu de chance, une plage ip commune avec d'autres applications.

Il se peut que toi, ou un des autres, ayez un peu abusé de ce service et ayez fait blacklister cet/ces ip/s. Cela m'est déjà arrivé une fois ou 2 chez Ikoula. Il faut leur faire la remarque et ils changent (c'est pas immédiat mais ça marche).

Le blacklistage des adresses smtp n'est pas commun. Par exemple, gmail n'utilise pas la même blacklist que yahoo (encore heureux...) ou qu'hotmail. Certains fournisseurs ne s'embêtent pas à avoir leur liste mais utilise des blacklists mises à jour plus ou moins régulièrement et auxquelles il est possible de dé-blacklisté (mais c'est compliqué).

Aussi, l'envoi d'email depuis un serveur SMTP mal configuré pourra aboutir à un envoi et une non-réception ou un refus de l'autre côté. Encore une fois, ceci sera plus difficilement "réparable" si tu es en mutualisé, ou pire, en free.

La classe PHPMailer est très bonne (même si je préfère Zend_mail) et permet de mettre, par défaut, de bons headers mais, il n'y aura rien de mieux qu'un SMTP approprié, si possible venant du même serveur que l'hébergement.
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 15h14   #6
Invité régulier
 
Inscription : février 2010
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 15
Points : 9
Points : 9
Tu as du mal lire.
Je suis pas chez un mutualisé.
Je suis passé d'un mutualisé chez Gandi.
Donc actuellement je suis chez Gandi et non pas sur un serveur mutualisé
Cryde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 15h31   #7
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Non, non, j'ai bien lu.

D'une part, Gandi ne fait pas que du dédié (il fait du cloud par exemple). D'autre part, j'ai mis des si. Il faut lire le reste.

Je te fais un résumé :
  • Te renseigner sur l'ip de ton serveur
  • Te renseigner sur l'historique de ton IP et l'usage effectué sur celle-ci.
  • Te renseigner sur la configuration de la fonction mail() de ton serveur (quel smtp? quel configuration de routage? Au niveau des DNS, tout est bon?)
  • Lire bien tout

L'envoi d'email via un serveur, c'est pas magique. Ayant travaillé chez un routeur professionnel d'emailing, je peux te dire que c'est une lutte de tous les instants. Ce n'est pas pour rien que les plus "grands" (ecommerce, assurance, banque, tourisme, etc.) font appels à eux (pas obligatoirement à mon ancienne boîte hein? Je parle des routeurs pro). Il y a pas mal de conditions à remplir pour un envoi optimal sur toutes les boites et la fonction mail() de php n'est pas obligatoirement optimisée dès le départ (elle ne l'est pas dans 98% des cas).

Bref, reviens vers nous avec un peu plus de détails sur ta configuration serveur et PHP, plutôt que ton code PHP qui n'est pas la cause du problème (enfin pas directement) vu que
  1. Tu utilises le même sur les 2 serveurs
  2. Il est basique mais "normal"
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 16h02   #8
Invité régulier
 
Inscription : février 2010
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 15
Points : 9
Points : 9
- Te renseigner sur l'ip de ton serveur : Que veux-tu dire par la ?
- Te renseigner sur l'historique de ton IP et l'usage effectué sur celle-ci : Comment dois-je faire ?
- Te renseigner sur la configuration de la fonction mail() de ton serveur (quel smtp? quel configuration de routage? Au niveau des DNS, tout est bon?) : le smtp n'est pas utile que dans le cas ou je veux recevoir des emails ? (j'utilise le smtp de Gandi). Kézako "configuration de routage" ? Au niveau du DNS il faudrait que ça soit comment ? ^^
- Lire bien tout : ?

Merci de ton aide ! =D

Puis Gandi fait du cloud ok, mais j'assimile la configuration d'un serveur cloud a celle d'un dédié. J'ai accès au serveur via ssh et tousa donc voila =D
Cryde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 16h37   #9
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
  • Je parle de l'IP utilisée pour ton serveur et celle de l'envoi de mail (s'il est différent). Pour l'hébergement, facile : <?php echo $_SERVER['SERVER_ADDR']; et hop
  • Tu peux vérifier alors si l'IP en question est blacklistée par les principales blacklists http://www.google.fr/search?q=blacklist+email
  • Une recherche google avec l'adresse IP peut (rarement mais bon) parfois parler pour elle
  • Le SMTP est le protocol d'envoi des mails. Pour la réception, tu as le choix (ou pas) entre POP ou IMAP.
  • As-tu accès au php.ini ? Si oui, regarde le smtp configuré par défaut dedans. De base, je crois qu'il est sur localhost, tu peux essayé de le changer pour le smtp de gandi que tu as.
  • En DNS, je ne m'y connais pas assez, j'aimerai pas dire de bêtises. Je sais juste que c'est un truc à voir pour l'optimisation de la réception des emails.
  • Il existe, par exemple (mais ce n'est pas la seule), une vérification appelée SPF
    qui se base sur la comparaison d'adresse entre celle de l'expéditeur et celle du serveur d'envoi. Il faut donc, si tu utilises un SMTP gandi (smtp.monsite.com), mettre une adresse email du même nom de domaine (moi@monsite.com). Tu peux aussi utiliser le SMTP de gmail ou de wanadoo si tu veux, mais il faut cette concordance !

Le cloud permet effectivement de pouvoir bien configurer ton serveur comme un serveur dédié (enfin la plupart du temps), mais en contre-partie, tu n'es qu'une machine virtuelle parmi tant d'autres sur une même machine. C'est un bon compromis entre mutualisé et dédié mais tu n'es ni l'un ni l'autre
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 19h18   #10
Invité régulier
 
Inscription : février 2010
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 15
Points : 9
Points : 9
N'auriez vous pas un bon tutoriel (assez complet) pour mettre tout ça en oeuvre ? =)

Par que je vois pas trop ce que je peux faire en fait ...
J'ai été regarder dans les logs (/var/log/mail) et il me dis bien que les mails envoyé vers les "@hotmail.com" ne sont pas partis ...
J'avoue être un peu perdu car je suis un débutant la dedans ...

Ce que je voudrais simplement c'est pouvoir envoyé des mails depuis mon site c'est tout :p
Mais si maintenant mon site doit être un relai stmp (mais que ça marche) ben alors pas de problème !

Mais j'aimerais (si vous en connaissez) un tutoriel sur le sujet =)
Parce que j'ai essayé de config postfix comme un des tutoriel le montrait mais sans succès !
Cryde est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h54.


 
 
 
 
Partenaires

Hébergement Web