[PHP] Probleme avec une fonction mail() - hebergement chez Derternet

Bonjour,

Je viens de prendre un hebergement mutualisé chez Derternet et je galere a faire fonctionner ma fonction mail().

De leur coté il dise qu’il faut utiliser le smtp de notre fournisseur d’accés pour envoyer via mail(), mais je ne sais pas comment on fait.

Si vous pouvez m’aider…
Merci

Peux-tu configurer le fichier php.ini?

NON

J’ai un .configs à la racine de mon FTP, mais j’ai aussi un access denied quand j’essaie d’entrer dedans

Merci pour ta reponse

Voici le code que j’utilise, voyez vous une/des erreurs?

<?
// On traite le formulaire si celui est valider
if (isset($_POST['valide'])) {
	if (!isset($_POST['votremail']) AND !isset($_POST['votrenom']) AND !isset($_POST['votreprenom']) ) {
  echo '<br />';
  echo '<center><p>Une erreur est survenue sur le site ou vous avez oublier de saisir votre nom, prénom ou adresse email, veuillez recomencer.</p>';
  echo '<FORM>';
  echo '<center><INPUT TYPE="button" VALUE="Retour" onclick=\'history.go(-1)\'><BR>';
  echo '</FORM>';
  include('include/footer.php');
  exit;
	}

	// La variable $verif, va nous permettre d'analyser si la sémantique de l'email est bonne
	$verif="!^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$!";

	// On assigne et protége nos variables
	$votremail=$_POST["votremail"];
	$votrenom = $_POST["votrenom"];
	$votreprenom = $_POST["votreprenom"];
	$objet = $_POST['objet'];
	$votreobjet = $_POST['votreobjet'];
	$from = htmlentities("From: ".$votremail);
	$message = stripslashes(htmlentities($_POST["message"]));
	$message = 'Message provenant de ' .$votrenom. ' ' .$votreprenom. ', <a href="mailto:' .$votremail. '">' .$votremail. '</a><br />Message:<br />' .$message. '';

	// On met ici notre email
	$destinataire="xxx@xxx.com"; //je met ici mon mail

	/* On place le sujet du message qui ici sera toujours le même
	puisque dans la partie Html on l'a mis en caché grace au type="hidden";) avec comme valeur "Vous avez un nouveau message"  */
	$objet= '' .$objet. '' .$votreobjet. '';

	// C'est bon on est OK, vérifions si l'email est valide, grâce à notre sympathique REGEX
	if(!preg_match($verif,$votremail))
	{
  echo '<br />';
  echo '<center><p>Une erreur est survenue sur le site : votre email est peut etre invalide.</p>';
  echo '<FORM>';
  echo '<center><INPUT TYPE="button" VALUE="Retour" onclick=\'history.go(-1)\'><BR>';
  echo '</FORM>';
	}
	elseif (!isset($_POST['votrenom']) AND !isset($_POST['votreprenom']) )
	{
        echo '<br />';
  echo '<center><p>Une erreur est survenue sur le site ou vous avez oublier de saisir votre nom, prénom, veuillez recomencer.</p>';
  echo '<FORM>';
  echo '<center><INPUT TYPE="button" VALUE="Retour" onclick=\'history.go(-1)\'><BR>';
  echo '</FORM>';
	}

	// On verifie si il y a un message
	elseif (trim($message)=="")
	{
        echo '<br />';
  echo '<center><p>Une erreur est survenue sur le site ou vous avez oublier de saisir le message, veuillez recomencer.</p>';
  echo '<FORM>';
  echo '<center><INPUT TYPE="button" VALUE="Retour" onclick=\'history.go(-1)\'><BR>';
  echo '</FORM>';
	}

	// Si tout est OK on envoie l'email
	else
	{
        mail($destinataire,$objet,$message,$from);
  echo '<br />';
        echo '<center><p>Votre message a été envoyé avec succé.</p>';
  echo '<center><p>Nous tacherons d\'y repondre au plus vite et vous remercions de l\'interet que vous porter pour notre activitée.</p>';
  echo '<FORM>';
  echo '<center><INPUT TYPE="button" VALUE="Retour" onclick=\'index.php\'><BR>';
  echo '</FORM>';
	}
}
else {
// Onaffiche le formulaire
	
	echo '<br />';
	
	echo '<form method="POST" action="contact.php">';
	echo '<center><table class="tab_contact1">';
	echo '<tr>';
	echo '<td class="td_contact">Votre Nom :</td>';
	echo '<td class="td_contact"><input type="text" name="votrenom" /></td>';
	echo '</tr>';
	echo '<tr>';
	echo '<td class="td_contact">Votre Prenom :</td>';
	echo '<td class="td_contact"><input type="text" name="votreprenom" /></td>';
	echo '</tr>';
	echo '<tr>';
	echo '<td class="td_contact">Votre email :</td>';
	echo '<td class="td_contact"><input type="text" name="votremail" /></td>';
	echo '</tr>';
	echo '<tr>';
	echo '<td class="td_contact">Objet du message :</td>';
	echo '<td class="td_contact"><input type="text" name="votreobjet" /></td>';
	echo '</tr>';
	echo '</table>';
	
	echo '<center><table class="tab_gal">';
	echo '<tr>';
	echo '<td colspan="2" class="td_contact"><center><p>Votre Message :</p><center><textarea cols="55" rows="6" name="message"></textarea></td>';
	echo '</tr>';
	echo '</table>';
	
	echo '<center><table class="tab_gal">';
	echo '<tr>';
	echo '<td class="td_contact"><br />Tous les champs de ce formulaire doivent etre remplis avant de valider l\'envoi.</td>';
	echo '<td class="td_contact"><br /><input type="submit" name="valide" value="Envoyer le message." /></td>';
	echo '</tr>';
	echo '</table>';
	
	echo '<input type="hidden" name="objet" value="[AuVieuxCassant.com] - " />';
	echo '</form';
	echo '<br />';
	echo '<br />';
	
}
?>

Alors, tu devrais leur demander comment faire d’abord, et si tu ne trouves pas, tu peux le faire avec fsockopen (phpbb le fait par exemple).

sous réserve que l’hébergeur autorise l’ouverture de sockets bien sur.
(facilement vérifiable avec phpinfo() non ?)

facilement vérifiable en faisant mumuse avec fsockopen() je dirais :slight_smile:

Bonjour, merci pour vos reponse,

Je leur ai envoyé un mail pour leur demander mais il m’ont repondu gentillement qu’il ne pouvait pas corriger mon code (qu’il n’ont sans doute pas regarder) et qu’il faut que je prenne une option gold pour qu’il puisse m’aider. Ils disent aussi que la fonction mail marche normalement et que c’est ce qu’il utilisent pour leur mail…

Si non mon code est correct?

Et jhe c vraiement plus ou j’avais vu ça sur leur site mais sa disait d’utiliser mon smtp pour l’envoi de mail via mail(). C’est possible?

Merci

Alors dans ce cas, tu n’as peut-être rien à faire tout simplement? :slight_smile:

pour le test, tu ne veux pas essayer phpmailer ?
tu seras fixé si c’est ta faute ou pas :o

oki,

j’essairai ça ce midi, y’a des trucs a configurer pour essayer (j’ai trouver la V1.73 sur le site officiel).

Bon j’ai pu faire un ptit test

Dans mon compte chez derternet je redirigeai l’adresse que j’utilise dans mon script vers ma boite free, et aparement c’est sa qui ne fonctionne pas

quand je creer un compte pop3 chez derternet et que je modifie mon form pour que se soit envoyer vers cette adresse sa fonctionne…

Je réessait avec la redirection

Si non j’essairais en metant directement mon adresse free dans mon script pour voir.

Je vous tien au courant

par contre je vois un autre probleme:

il faut que j’inclu les head et body pour que l’email s’affiche correctement dans ma messagerie? la je vois le html dans le contenus du mail (<br />)

Normal :slight_smile: les mails sont par défaut envoyé au format texte.

Oki,
Donc comment faire pour ajouter au message une ligne (en haut contenant le sujet, mail de l’expediteur…)? En gros comment ou traduit un retour a la ligne en texte

\n?

a oui … lol la honte

Merci du coup de main