8791 sujets

Développement web côté serveur, CMS

Bonjour a tous,

Voila j'ai un client qui s'est plaint car le formulaire de contact ne fonctionne pas. Normalement, il y a 2 adresses emails du client, une de type : info@client.co.uk et l'autre : admin@client.co.uk

J'ai donc essaye de changer les adresses emails:
- en mettant juste mon adresse email de test, de type: contact@moi.fr - OK
- en mettant 2 adresses emails : contact@moi.fr, contact2@moi.fr - OK
- en mettant une seule adresse du client : info@client.co.uk - PROBLEME

Les 2 noms de domaines du client (ses adresses emails) sont les meme que celui ou le site est heberge.
Donc ma question est : Est-ce que le probleme vient du fait que l'adresse email contient 2 points (info@client.co.uk) ? Je ne pense pas mais bon. Sinon comment puis je resoudre mon probleme ?
Y a-t-il des variables PHP qui puissent me renvoyer l'erreur cote serveur ?
Merci infiniment.

Pour info voici mon code, mais bon il marche avec mon mail alors normalement tout est ok.
if($valid_form && $captcha)
{
	$object     = utf8_decode("CONTACT - Biggin Hill Heritage Hangar");
	$to         = "contact@xxx.fr, contact2@www.fr";
	$entete     = "From: ".$contact_post['email']."\n";
	$entete	   .= "Content-type: text/html; charset= utf8";
	
	$message    = "Date : ".date('d-m-Y')."<br />";
	$message   .= "Nom : ". ucfirst(strtolower($contact_post['name']))."<br />";
	$message   .= "Email : ".$contact_post['email']."<br />";
	$message   .= "Subject : ".$contact_post['subject']."<br />";
	$message   .= "Message : <br />".stripcslashes(nl2br($contact_post['message']));
	
	$envoi_mail = send_mail($object, $to, $entete, $message);
	
	if($envoi_mail)
	{
		$_SESSION['msg_erreur']	= array("constant" => "_FORM_VALIDE", "class" => "valid");
	}
	else
	{
		$_SESSION['tab_contact'] = $contact_retour;
		$_SESSION['msg_erreur']	= array("constant" => "_FORM_ERROR", "class" => "error");
	}
}
bonjour,

tout d'abord que fait ta fonction send_mail() ? en php c'est la fonction mail(). Mais bon si la fonction marche avec ton adresse le problème ne vitn pas de là.

ensuite, vérifie que les mails ne tombent pas dans la boite SPAM du client, si c'est le cas, pour éviter le SPAM il faut rajouter :
$entete.='Reply-To: ...@...'."\n";


enfin, effectivement le format de l'adresse peut poser problème, il faut vérifier dans la doc (RFC 2822)
Modérateur
Salut,

@Zebrou : +1 dans ton premier message. error_get_last() retournera les erreurs de php uniquement (fatal, warning, notice, etc.). Si c'est une erreur système, ça m'étonnerait qu'il y ait une trace. Smiley cligne

Pour les log Apache :
$tail /var/log/apache2/access.log


De mémoire, pour les logs du mail (postfix) :
$tail /var/log/mail.log


Pour avoir la trace du mail, il y a aussi le syslog :
$tail /var/log/syslog

De mémoire, tu dois voir le mail envoyé (le contenu) et l'état de l'envoi sur une autre ligne. De mémoire, c'est un truc comme :
delivered to maildir


En lisant ton code en Z, je vois des oublies. Par exemple :
- Je ne vois pas le boundary.
- Je ne vois pas l'alternative textuelle.
- Je ne vois pas la version du MIME

<<<EDIT
Il y a peut être un petit souci de config serveur. Contacte l'hébergeur et explique lui le petit souci. Il serait intéressant qu'il envoie un mail à contact@client.co.uk. Logiquement l'adresse entrée est valide. Je pense que tu devrais voir si l'adresse entrée est réellement valide. Dans un autre contexte et de mémoire, j'ai eu un souci avec l'underscore.
EDIT;
Modifié par niuxe (24 Oct 2013 - 20:48)