OVH Community, votre nouvel espace communautaire.

mail() et domaines... passe pas partout ?


mrSKay
23/10/2004, 20h55
Merci pour tous ces conseils...
Cela me permet d'y voir un peu plus clair...

Effectivement, le \r est de trop...

Ce qui se passe, d'après ce que je comprends, c'est que seuls les mails en local parviennent à bonne destination... Les autres me reviennent en erreur...

A priori, je me tourne vers une configuration problématique de mon qmail...
en entrant /etc/rc.d/init.d/qmail start

j'obtiens un :
Starting: qmail pop smtp
multilog: fatal: unable to lock directory /var/log/qmail: temporary failure
tcpserver: fatal: unable to bind: address already used
tcpserver: fatal: unable to bind: address already used



hum... un problème ou plusieurs peut-être...
Quelqu'un aurait-il une solution ou une piste à me donner ?

Merci

bucoli
06/09/2004, 16h08
Bonjour,
j'ai rencontré exactement cette situation, mais je ne suis pas sur que ce soit le meme ca de figure pour vous.

Voici ce qui m'est arrivé (c'était chez un autre hébergeur en mutualisé, mais je pense que çà serait pareil sur un dédié) :

J'avais un formulaire php identique au votre.
Le mails envoyés à mes adresses yahoo ou wandoo partaient bien , mais rien à faire quand je mettait certaines adresses de domaines qui avaient été hébergés sur ce serveur précisémént. Le fomulaire ne postait pas.

En fait, la commande php cherchant en priorité sur le serveur d'hébergement n'arrivait pas à délivrer les messages; les domaines en question avaient bien été présents sur le serveur mais je les avais transférés sur un autre serveur. Et bien qu'ayant été supprimées du serveur, celui-ci gardait en cache les infos dns (zones MX et CNAME mail. pop. etc.).
Comme c'était un mutualisé j'ai simplment demandé au support technique de nettoyer tout çà et depuis le problème a disparu.

J'eqpère que çà peux vous aider dans votre recherche,
Olivier

jelie
04/09/2004, 07h55
Citez en entier le texte :

les en-têtes personnalisés comme From:, Cc:, Bcc: et Date: ne sont pas par le MTA dans un premier temps, mais sont parsés par PHP. Seules les versions de PHP inférieures à la version 4.3 supportent l'en-tête Cc: (et est sensible à la casse). Les versions de PHP >= 4.3 supportent toutes les en-têtes mentionnés et ne sont pas sensibles à la casse.


ou, la version anglaise :


the custom headers like From:, Cc:, Bcc: and Date: are not interpreted by the MTA in the first place, but are parsed by PHP. PHP < 4.3 only supported the Cc: header element (and was case-sensitive). PHP >= 4.3 supports all the mentioned header elements and is no longer case-sensitive.


L'en-tête "Cc:" est parfaitement reconnu par toutes les versions de PHP.

Benefactor
03/09/2004, 14h10
je suis pas expert mais dans le manuel PHP (http://fr.php.net/manual/fr/function.mail.php ) je lis
Seules les versions de PHP inférieures à la version 4.3 supportent l'en-tête Cc:

jelie
22/08/2004, 16h29
En tout cas, le fait que Qmail vous ait répondu sur les adresses placées en « cc » signifie que le script fonctionne !

Après, il faut voir pourquoi une telle erreur survient...

jelie
22/08/2004, 16h28
Méfiez-vous pour le « \r\n ».
Regardez par exemple :

§
Sous *nix (serveurs OVH par exemples), le LF seul indique le saut de
ligne. Donc \n seul pour mettre un header sur chaque ligne.
§

http://groups.google.fr/groups?hl=fr....fr%26rnum%3D2


et dans la FAQ de la fonction mail :

§
Recent email scanners (virus scanners) working on mail servers will refuse to deliver any mail containing the "\r" character in header (your mail will probably bounce off with "Disallowed MIME characters found in headers" comment).
This is true for Qmail-Scanner and F-Prot Antivirus for Linux but for others most probably too.
Hence use "\r\n" in headers ONLY when you send you email using the mail() function via Windows-based SMTP server - otherwise just use "\n"
§

mrSKay
19/08/2004, 17h38
hum...
Je viens d'avoir un retour de qmail-sendmail



Hi. This is the qmail-send program at ns....ovh.net.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.

<...@arcadehits.net>:
Sorry, no mailbox here by that name. vpopmail (#5.1.1)

<...@chattedefou.com>:
Sorry, no mailbox here by that name. vpopmail (#5.1.1)


Ce qui est étrange, c'est que les deux mails en question sont fonctionnels, je m'en sers sans problème avec Outlook / windows ou Evolution / fedora core...

C'est donc ailleurs que doit se situer mon problème...
Quelqu'un a une idée sur ça ?


PS: autre bizarrerie...
J'ai posté une réponse à jelie concernant mon script qui n'est pas encore publiée bien que le message ait été signalé comme posté... Y t'il un délai pour certains message ???
merci jelie mais sans le \r ça fonctionne pas... par contre je connaissais pas le 5° argument de mail, on en apprend tous les jours, mais jamais assez

mrSKay
19/08/2004, 16h44
Merci pour cette réponse.

Lorsque j'utilise simplement \n à la fin des lignes du $header cela ne fonctionne pas j'ai donc remi \r\n et j'obtiens le même résultat...

Merci pour le cinquième paramètre, je viens d'en comprendre son utilité en faisant de nouveaux tests...

Pour les autres domaines, je n'ai toujours pas de résultat concluant, même en ne mettant qu'un seul destinataire et ajoutant les autres dans le Cc: J'ai tenté un maximum de combinaisons , mais rien à faire...

Vous est-il arrivé de constater ce type de problème avec certains domaines ?

jelie
19/08/2004, 11h42
Bonjour,

Je vous conseillerai plutôt de mettre « \n » simplement
à la fin de chaque en-tête.

Pourriez-vous ne mettre qu'un seul mail dans $mail,
et les autres dans les $headers avec « Cc: » ?

Code PHP:
$mail "...@yahoo.fr";
$titre "Bajour";
$headers  "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "From: arcadeHITS <......@arcadehits.net>\n";
$headers .= "Cc: ....@chattedefou.com, ....\n";
$headers .= "Reply-to : ......@arcadehits.net\n";

mail($mail$titre$temp$headers"-fADRESSE@votre-site.com");
?>

Est-ce que ça marche mieux ?

mrSKay
19/08/2004, 04h31
Bonjour,

Voici mon premier post dans ce forum et mes premiers pas sur l'administration d'un serveur ... suite à la lecture et une bonne dizaine de sujets concernant l'envoi de mail et de tests différents, je sèche...

Je tente d'envoyer un mail suite à un formulaire rempli sur un site installé sur un serveur dédié OVH... avec le composant mail() Jusqu'à présent j'arrive à envoyer un mail mais certaines adresses sur des noms de domaines que je possède ne reçoivent pas le courrier.

Code PHP:
$temp=$_POST["mail"].
 "
.$_POST["contact"].
 "
.$_POST["url"].
 "
.$_POST["remarque"];
$mail  ".....@yahoo.fr, ......@chattedefou.com";
$titre   "Bajour";
$headers  "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: arcadeHITS <......@arcadehits.net>\r\n";
$headers .= "Cc: ......@arcadehits.net\r\n";
$headers .= "Reply-to : ......@arcadehits.net\r\n";
mail($mail$titre$temp$headers);
?>
Ce script fonctionne apparemment puisque je reçois bien le courrier sur l'adresse .....@yahoo.fr mais en aucun cas sur les deux autres (chattedefou.com et arcadehits.net)

Est-ce une erreur dans ce script ?
Avez-vous déjà eu ce genre de soucis avec certains domaines ? et si il n'y a pas de solutions, puis-je avoir en retour une information comme quoi mon mail n'est pas parvenu à ces autres destinataires ?

Merci