Fonction mail()
Chabanus
Messages postés
1026
Statut
Membre
-
bissdebrazza Messages postés 2886 Statut Contributeur -
bissdebrazza Messages postés 2886 Statut Contributeur -
Bonsoir,
J'ai un programme a rendre demain, donc c'est urgent s'il vous plait, l'objectif c'est d'envoyer un email a une personne et je ne sais pas pourquoi cela ne marche pas c'est peut être a cause de la fonction mail(). Voici le code merci:
J'ai un programme a rendre demain, donc c'est urgent s'il vous plait, l'objectif c'est d'envoyer un email a une personne et je ne sais pas pourquoi cela ne marche pas c'est peut être a cause de la fonction mail(). Voici le code merci:
<?php
if(isset($_POST['texte']))
{
if(($_POST['texte'] == "") || ($_POST['mail'] == ""))
{
header("Location:contact.php?erreur=vide");
}
else
{
$nom = addslashes($_POST['nom']);
$prenom = addslashes($_POST['prenom']);
$mail = addslashes($_POST['mail']);
$telephone = addslashes($_POST['telephone']);
$texte = stripslashes($_POST['texte']);
$texte = htmlspecialchars($texte);
$texte = addslashes($texte);
$texte = nl2br($texte);
$mail_admin = "chabanus@live.fr";
$envoi= "Nom=".$nom."
Prénom=".$prenom."
Téléphone=".$telephone."
Email=".$mail."
Message de l'expéditeur:
".$texte;
echo $envoi;
$sujet = "Bonjour ".$nom;
$head = "chabanus@live.fr";
mail($mail_admin, $sujet, $envoi, $head);
echo $envoi;
header("Location:contact.php?formulaire=valide");
}
}
?>
A voir également:
- Fonction mail()
- Fonction si et - Guide
- Windows live mail - Télécharger - Mail
- Comment télécharger un mail - Guide
- Publipostage mail - Accueil - Word
- Etik mail - Guide
17 réponses
Chabanus
Messages postés
1026
Statut
Membre
70
Cela ne renvoie pas d'erreur, je reçois rien dans ma boite.
Salut, je vois déjà deux erreur, une concernant ton $head ou tu met juste ton adresse e-mail, normalement, tu devrais y placer tes en-tête, a savois, si c'est du text/html, l'encodage, l'adresse de réponse ... et un autre concernant ton header(Location:), tu as un echo juste avant, la redirection ne se feras pas. Il ne faut afficher aucun texte sur la page avant un header. Un lien qui pourras t'aider pour ta fonction mail() :
https://www.vulgarisation-informatique.com/mail.php
https://www.vulgarisation-informatique.com/mail.php
Salut!
La fonction mail() est désactivée sur Ifrance, donc tu pourras envoyer des milliers de messages,ils n'arriveront jamais!!
J'ai beaucoup essayé,mais jamais arrivé les mails.
La fonction mail() est désactivée sur Ifrance, donc tu pourras envoyer des milliers de messages,ils n'arriveront jamais!!
J'ai beaucoup essayé,mais jamais arrivé les mails.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai essayé graçe au lien mais ça marche pas:
<?php
if(isset($_POST['texte']))
{
if(($_POST['texte'] == "") || ($_POST['mail'] == ""))
{
header("Location:contact.php?erreur=vide");
}
else
{
$nom = addslashes($_POST['nom']);
$prenom = addslashes($_POST['prenom']);
$mail = addslashes($_POST['mail']);
$telephone = addslashes($_POST['telephone']);
$texte = addslashes($_POST['texte']);
//-----------------------------------------------
//DECLARE LES VARIABLES
//-----------------------------------------------
$destinataire='chabanus@live.fr';
$email_expediteur=$mail;
$email_reply='chabanus@live.fr';
$message_texte=$texte;
$message_html='<html>
<head>
<title>Titre</title>
</head>
<body>Test de message</body>
</html>';
//-----------------------------------------------
//GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
//-----------------------------------------------
$frontiere = '-----=' . md5(uniqid(mt_rand()));
//-----------------------------------------------
//HEADERS DU MAIL
//-----------------------------------------------
$headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
$headers .= 'Return-Path: <'.$email_reply.'>'."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"';
//-----------------------------------------------
//MESSAGE TEXTE
//-----------------------------------------------
$message = 'This is a multi-part message in MIME format.'."\n\n";
$message .= '--'.$frontiere.'--'."\n";
$message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_texte."\n\n";
//-----------------------------------------------
//MESSAGE HTML
//-----------------------------------------------
$message .= '--'.$frontiere.'--'."\n";
$message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_html."\n\n";
$message .= '--'.$frontiere.'--'."\n";
if(mail($destinataire,$sujet,$message,$headers))
{
echo 'Le mail a été envoyé';
}
else
{
echo 'Le mail n\'a pu être envoyé';
}
}
}
Salut
Voici le joli message que j'ai reçu de Ifrance(il y a peu de temps quand je voulais faire comme toi).
C'est pour te dire que la fonction mail est désactivée chez Ifrance,donc tu ne recevra pas de message!!
Voici le joli message que j'ai reçu de Ifrance(il y a peu de temps quand je voulais faire comme toi).
Bonjour, L'utilisation abusive de la fonction mail par les spammeurs nous a forcé a desactiver la fonction mail sur les serveurs gratuits. L'appel a la fonction ne creera pas d'erreur php mais ne produira aucun resultat. Pour tous les problemes relatif à IFrance veuillez ne pas confondre le forum officiel de Mysql et les services IFrance / IFrancepro. En cas de probleme veuillez nous contacter via notre portail.
C'est pour te dire que la fonction mail est désactivée chez Ifrance,donc tu ne recevra pas de message!!
Sur easyphp il faut modifier ton php.ini pour que ça passe!!
Et on fait comment s'il vous plait. Est-ce que ce code ci-dessous est valide s'il vous plait:
<?php
if(isset($_POST['texte']))
{
if(($_POST['texte'] == "") || ($_POST['mail'] == ""))
{
header("Location:contact.php?erreur=vide");
}
else
{
$nom = addslashes($_POST['nom']);
$prenom = addslashes($_POST['prenom']);
$mail = addslashes($_POST['mail']);
$telephone = addslashes($_POST['telephone']);
$texte = addslashes($_POST['texte']);
$destinataire='chabanus@live.fr';
$email_expediteur=$mail;
$email_reply='chabanus@live.fr';
$message_texte="Nom: ".$nom."\n Prénom: ".$prenom."\n Téléphone: ".$telephone."\n Adresse E-mail: ".$mail."\n Message: ".$texte;
$message_html='<html>
<head>
<title>Message</title>
</head>
<body>Test de message</body>
</html>';
$frontiere = '-----=' . md5(uniqid(mt_rand()));
$headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
$headers .= 'Return-Path: <'.$email_reply.'>'."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"';
$message = 'This is a multi-part message in MIME format.'."\n\n";
$message .= '--'.$frontiere.'--'."\n";
$message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_texte."\n\n";
$message .= '--'.$frontiere.'--'."\n";
$message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_html."\n\n";
$message .= '--'.$frontiere.'--'."\n";
$sujet = 'message';
if(mail($destinataire,$sujet,$message,$headers))
{
header("Location:contact.php?formulaire=valide");
}
else
{
header("Location:contact.php?formulaire=invalide");
}
}
}
?>
Normalement il est activé par défaut, par contre, si tu veux le faire tourner en local il faut installer un serveur smtp, et c'est un peu chiant a faire. Pour les mails c'est plus pratique de bosser sur un serveur externe. Tu peux ouvrir un compte chez free, ou chez un autre hébergement gratuit.
salut!
essai ça:
[mail function]
; For Win32 only.
SMTP = smtp.mail.yahoo.fr ;for win32 only
smtp_port = 465
; For Win32 only.
; sendmail_from = ton_pseudo@yahoo.fr ;for win32 only
Si tu as un compte chez yahoo ça fera l'affaire!!
essai ça:
[mail function]
; For Win32 only.
SMTP = smtp.mail.yahoo.fr ;for win32 only
smtp_port = 465
; For Win32 only.
; sendmail_from = ton_pseudo@yahoo.fr ;for win32 only
Si tu as un compte chez yahoo ça fera l'affaire!!
Merci. On me dit:
Failed to connect to mailserver at "smtp.mail.yahoo.fr" port 465, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\EasyPHP 2.0b1\www\Projet1\contact.php on line 30
alors que j'ai clairement suivis tes instructions :
[mail function]
; For Win32 only.
SMTP = smtp.mail.yahoo.fr ;for win32 only
smtp_port = 465
; For Win32 only.
; sendmail_from = moncompte@yahoo.fr ;for win32 only
Failed to connect to mailserver at "smtp.mail.yahoo.fr" port 465, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\EasyPHP 2.0b1\www\Projet1\contact.php on line 30
alors que j'ai clairement suivis tes instructions :
[mail function]
; For Win32 only.
SMTP = smtp.mail.yahoo.fr ;for win32 only
smtp_port = 465
; For Win32 only.
; sendmail_from = moncompte@yahoo.fr ;for win32 only
essai de mettre 25 sur le port à la place de 465!
cette fois-ci on m'a dit:
Warning: mail() [function.mail]: SMTP server response: 530 authentication required - "for help go to https://help.yahoo.com/kb/account" in C:\Program Files\EasyPHP 2.0b1\www\Projet1\contact.php on line 30
Warning: mail() [function.mail]: SMTP server response: 530 authentication required - "for help go to https://help.yahoo.com/kb/account" in C:\Program Files\EasyPHP 2.0b1\www\Projet1\contact.php on line 30