Un formulaire d'envoi de mail sur son site?
Nugz
Messages postés
30
Statut
Membre
-
Nabla's Messages postés 20731 Statut Contributeur -
Nabla's Messages postés 20731 Statut Contributeur -
Bonjour,
J'aimerais bien mettre un formulaire d'envoi de mail sur mon site web. Après de nombreux essais, j'ai toujours des erreurs au moment de l'envoie proprement dit.
Alors question basique: Faut-il qu'un serveur de mail tourne sur le serveur web pour que ça fonctionne? Faut-il que le port 25 soit open?
Merci d'avance,
;)
J'aimerais bien mettre un formulaire d'envoi de mail sur mon site web. Après de nombreux essais, j'ai toujours des erreurs au moment de l'envoie proprement dit.
Alors question basique: Faut-il qu'un serveur de mail tourne sur le serveur web pour que ça fonctionne? Faut-il que le port 25 soit open?
Merci d'avance,
;)
A voir également:
- Un formulaire d'envoi de mail sur son site?
- Whatsapp formulaire opposition - Guide
- Site de telechargement - Accueil - Outils
- Formulaire de réclamation facebook compte désactivé - Guide
- Site de partage de photos - Guide
- Site comme coco - Accueil - Réseaux sociaux
5 réponses
si tu héberge chez toi, il faut modifier le php.ini ou alors utiliser la fonction iniset pour définir le serveur smtp (mets l'adresse du smtp de ton fournisseur d'accès internet
si ton site est hébergé en ligne, alors il faut voir si tu as le droit d'utiliser leur smtp
si ton site est hébergé en ligne, alors il faut voir si tu as le droit d'utiliser leur smtp
Merci pour ta réponse, en fait j'utilise un rps de chez ovh, donc je suis chez moi sans vraiment l'être...
si le serveur apache est chez toi, alors dans ton code tu met
ini_set("SMTP","mail.fournisseur d'accès.com" ); //liste dispo ici http://www.commentcamarche.net/faq/sujet 893 adresses des serveurs pop et smtp des principaux fai
puis utilises la fonction mail:
https://www.php.net/manual/en/function.mail.php
ini_set("SMTP","mail.fournisseur d'accès.com" ); //liste dispo ici http://www.commentcamarche.net/faq/sujet 893 adresses des serveurs pop et smtp des principaux fai
puis utilises la fonction mail:
https://www.php.net/manual/en/function.mail.php
Merci encore. Ça coince toujours! J'ai configuré mon php.ini comme suit:
et voici le php lié au formulaire d'envoie:
Merci d'avance.
[mail function] ; For Win32 only. SMTP = relay.edpnet.be smtp_port = 25 ; For Win32 only. sendmail_from = monmail@edpnet.be
et voici le php lié au formulaire d'envoie:
<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'monmail@edpnet.be';
// copie ? (envoie une copie au visiteur)
$copie = 'oui'; // 'oui' ou 'non'
// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord <a href=\"envoie.html\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
/*
********************************************************************************************
FIN DE LA CONFIGURATION
********************************************************************************************
*/
// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = trim($text); // delete white spaces after & before text
if (1 === get_magic_quotes_gpc())
{
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else
{
$stripslashes = create_function('$txt', 'return $txt;');
}
// magic quotes ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
};
/*
* Cette fonction sert à vérifier la syntaxe d'un email
*/
function IsEmail($email)
{
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (eregi($pattern,$email)) ? true : false;
};
// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
{
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";
// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};
// Remplacement de certains caractères spéciaux
$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);
// Envoi du mail
if (mail($cible, $objet, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="envoie.html">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>
Merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question