Discussion:
formulaire mail non recu par ms exchange 2003
(trop ancien pour répondre)
jdb
2007-01-21 20:46:42 UTC
Permalink
bonjour,

Le code suivant doit envoyer un mail, ça fonctionne sur des adresses du type
@wanadoo.fr, mais pas sur ***@monadresse.com.
(***@monadresse.com reçoit bien les mails d'autres provenances)
le domaine @monadresse.com est géré par mon serveur exchange 2003 qui est
serveur MX et fonctionne correctement, à part ça.
Je ne sais pas si je dois chercher côté PHP ou Exchange.
Merci pour votre aide.

JDB

Le code est le suivant :

$dest="***@arobois.com";
$sujet="Arobois - contact site internet : Français";

$corps="Nom : ";

$corps.= $NOM;

$corps.="\n";

$corps.="Prénom : ";

$corps.= $PRENOM;

$corps.="\n";

$corps.="Société : ";

$corps.= $SOC;

$corps.="\n";

$corps.="Adresse : ";

$corps.= $ADR;

$corps.="\n";

$corps.="CP : ";

$corps.= $CP;

$corps.="\n";

$corps.="Ville : ";

$corps.= $VILLE;

$corps.="\n";

$corps.="Téléphone : ";

$corps.= $TEL;

$corps.="\n";

$corps.="Fax : ";

$corps.= $FAX;

$corps.="\n";

$corps.="Email : ";

$corps.= $EMAIL;

$corps.="\n";

$corps.="Commentaires : ";

$corps.= $COMMENT;

$corps.="\n";

$entete="From: ".$EMAIL;

mail($dest,$sujet,$corps,$entete);
Olivier Miakinen
2007-01-21 22:50:00 UTC
Permalink
Post by jdb
Le code suivant doit envoyer un mail, ça fonctionne sur des adresses du type
@wanadoo.fr, mais pas sur ***@monadresse.com.
serveur MX et fonctionne correctement, à part ça.
Je ne sais pas si je dois chercher côté PHP ou Exchange.
Je n'ai pas la réponse, mais voici déjà quelques pistes.
Ok.
Post by jdb
$sujet="Arobois - contact site internet : Français";
Attention, tu n'es pas censé pouvoir écrire un c cédille directement
dans un entête de courriel, car la déclaration de caractères dans les
entêtes (si elle existe) ne porte que sur le corps du message.

Il faut écrire par exemple :
"Arobois - contact site internet : =?ISO-8859-1?Q?Fran=E7ais?="
Post by jdb
$corps="Nom : ";
$corps.= $NOM;
$corps.="\n";
Ceci peut être abrégé en :
$corps = "Nom : $NOM\n";
Post by jdb
$corps.="Prénom : ";
$corps.= $PRENOM;
$corps.="\n";
Idem :
$corps .= "Prénom : $PRENOM\n";
(et ainsi de suite)
Post by jdb
$corps.="Société : ";
$corps.= $SOC;
$corps.="\n";
$corps.="Adresse : ";
$corps.= $ADR;
$corps.="\n";
$corps.="CP : ";
$corps.= $CP;
$corps.="\n";
$corps.="Ville : ";
$corps.= $VILLE;
$corps.="\n";
$corps.="Téléphone : ";
$corps.= $TEL;
$corps.="\n";
$corps.="Fax : ";
$corps.= $FAX;
$corps.="\n";
$corps.="Email : ";
$corps.= $EMAIL;
$corps.="\n";
$corps.="Commentaires : ";
$corps.= $COMMENT;
$corps.="\n";
Ok, mais comme tu as des caractères non ASCII (par exemple le « é » de
prénom) il te faut savoir dans quel jeu de caractères est ton programme
PHP, pour l'annoncer dans les entêtes...
Post by jdb
$entete="From: ".$EMAIL;
... ce n'est pas fait. Si tu es, par exemple, en ISO-8859-1, rajouter :

$entete .= "\n";
$entete .= "MIME-Version: 1.0\n";
$entete .= "Content-Type: text/plain; charset=ISO-8859-1\n";
$entete .= "Content-Transfer-Encoding: 8bit\n";
Post by jdb
mail($dest,$sujet,$corps,$entete);
Quand tout cela sera fait, vérifier que ton serveur de courriel ne fait
pas des vérifications telles que « le champ From: correspond à une
adresse de mon domaine ». Si oui, peut-être que rajouter un champ
« Sender » serait utile (je n'en sais rien en fait... voir fr.comp.mail
ou fr.comp.mail.serveurs pour des infos plus sûres).
Olivier Miakinen
2007-01-21 23:24:07 UTC
Permalink
Post by Olivier Miakinen
Post by jdb
$sujet="Arobois - contact site internet : Français";
Attention, tu n'es pas censé pouvoir écrire un c cédille directement
dans un entête de courriel, car la déclaration de caractères dans les
entêtes (si elle existe) ne porte que sur le corps du message.
"Arobois - contact site internet : =?ISO-8859-1?Q?Fran=E7ais?="
Au passage, si tu parles de la langue française et pas d'un habitant de
la France, il faut une minuscule à « français ». Donc :
"Arobois - contact site internet : =?ISO-8859-1?Q?fran=E7ais?="
Post by Olivier Miakinen
$entete .= "MIME-Version: 1.0\n";
$entete .= "Content-Type: text/plain; charset=ISO-8859-1\n";
$entete .= "Content-Transfer-Encoding: 8bit\n";
J'ai oublié de signaler au passage que ton logiciel de nouvelles,
Microsoft Outlook Express 6.00.2900.3028, est mal configuré par
défaut puisqu'il ne comporte pas non plus ces trois informations
indispensables (MIME-Version, Content-Type, Content-Transfer-Encoding)
alors que ton article contient des caractères non-ascii. Tu peux voir
fr.usenet.8bits pour améliorer les choses.

Continuer la lecture sur narkive:
Loading...