Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

formulaire mail non recu par ms exchange 2003

2 réponses
Avatar
jdb
bonjour,

Le code suivant doit envoyer un mail, ça fonctionne sur des adresses du type
@wanadoo.fr, mais pas sur contact@monadresse.com.
(contact@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="contact@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);

2 réponses

Avatar
Olivier Miakinen

Le code suivant doit envoyer un mail, ça fonctionne sur des adresses du type
@wanadoo.fr, mais pas sur
( 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.


Je n'ai pas la réponse, mais voici déjà quelques pistes.

$dest="";


Ok.

$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çais?="

$corps="Nom : ";
$corps.= $NOM;
$corps.="n";


Ceci peut être abrégé en :
$corps = "Nom : $NOMn";

$corps.="Prénom : ";
$corps.= $PRENOM;
$corps.="n";


Idem :
$corps .= "Prénom : $PRENOMn";
(et ainsi de suite)

$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...

$entete="From: ".$EMAIL;


... ce n'est pas fait. Si tu es, par exemple, en ISO-8859-1, rajouter :

$entete .= "n";
$entete .= "MIME-Version: 1.0n";
$entete .= "Content-Type: text/plain; charset=ISO-8859-1n";
$entete .= "Content-Transfer-Encoding: 8bitn";

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).

Avatar
Olivier Miakinen
Le 21/01/2007 23:50, je répondais à 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çais?="


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çais?="

$entete .= "MIME-Version: 1.0n";
$entete .= "Content-Type: text/plain; charset=ISO-8859-1n";
$entete .= "Content-Transfer-Encoding: 8bitn";


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.