WampServer

Apache, PHP, MySQL on Windows 

 
  • Accueil forum
  • Retour à WampServer
  • presentation
  • Download
  • Addons
  • Formations
  • Alter Way

 
Voir le sujet: Précédent•Suivant
Aller à : Liste des Forums•Liste des messages•Nouvelle discussion•Recherche•Connexion•Imprimer la vue
Activer l'option mail()
Envoyé par: Melchi (193.220.137.---)
Date: 13 July 2011 à 18:26

Bonjour, je suis en train de créer un petit site web et je voudrais que les membres s'inscrivent et activent leur inscription via un lien que je leur envois par email, malheureusement il me semble que je ne peut pas envoyer un message par email et je pense que c'est l'option mail() qui n'est pas installer dans mon wampserver.
Comment alors je peux faire?
Je m'excuse je suis débutant en PHP. Merci

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: bagu (---.bagu.biz)
Date: 13 July 2011 à 18:52

La fonction mail() est active par défaut dans wamp.

------------------------------------------------------------------------------------------------------------
Apache 2.4.7 vc11 64bits - PHP 5.5.7 vc11 32bits - MariaDB 10.0.6 - PhPMyAdmin 4.1.0

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: Otomatic (---.fbx.proxad.net)
Date: 13 July 2011 à 19:50

Bonsoir,

Voir comment il faut l'utiliser : [fr2.php.net]

---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: griggione (---.104.199.77.rev.sfr.net)
Date: 14 January 2015 à 11:55

Bonjour tous

Comment peut-on vérifier que cette fonction est bien active ?

Comment changer les parametres de php mail ? (surtout changer you@yourdomain)

A quoi ressemble l'adresse sortante du serveur de courrier SMTP de notre FAI ?

Merci

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: Otomatic (Modérateur)
Date: 14 January 2015 à 13:14

Bonjour,

Si mail() renvoie true, ça veut dire que le courriel est accepté pour la livraison et est bien parti. Il n'y a aucun moyen de savoir si le courriel est arrivé.

Je conseille fortement d'utiliser une class comme PhpMailer

---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: griggione (---.104.199.77.rev.sfr.net)
Date: 14 January 2015 à 15:42

Bonjour Otomatic

Otomatic a écrit:
-------------------------------------------------------
> Si mail() renvoie true, ça veut dire que le courriel est accepté pour la livraison et est bien parti.

Je ne comprend pas cette manip, mais effectivement, j'aimerais savoir si c'est parti.

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: Artemus24 (---.70.16.109.rev.sfr.net)
Date: 14 January 2015 à 15:43

Salut Griggione.

Pour configurer la fonction mail() de php, vous devez vous rendre dans le fichier php.ini.

--> smtp : mettre un serveur de messagerie. Exemple : "smtp.neuf.fr" si vous êtes chez SFR.

--> smtp_port : 25 ou 587. Cela dépend du serveur mail de votre FAI.
Vous pouvez mettre aussi autre chose, comme celui de l'hébergeur de votre site. Exemple : AlwaysData.
Ou encore la messagerie de Google ou de Microsoft.
La question est de savoir si vous avez une adresse email chez eux et comment y accéder.

--> sendmail_from : votre adresse email, chez votre FAI, genre albert@outlook.com pour microsoft.

Le mieux est que tu me donnes tes références de ton FAI.

@+

----------------------------------------------------------------------------------------------------------------------------------------------------------------
Mon site : [www.jcz.fr]

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: griggione (---.104.199.77.rev.sfr.net)
Date: 14 January 2015 à 15:53

Bonjour Artemus24

Pour moi je suis toujours chez aol > neuf > sfr
Donc :
SMTP = smtp.fr.aol.com
smtp_port = 25
sendmail_from = xxxxx@aol.com

Correct ?
et ensuite je teste comment ?

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: Artemus24 (---.70.16.109.rev.sfr.net)
Date: 15 January 2015 à 18:15

Salut Griggione.

Il n'y a aucune difficulté.

1) SMTP. Oui, tu peux l'utiliser, mais je te conseille de mettre 'smtp.neuf.fr'.

2) SMTP_PORT. Là, il y a un problème, mais pas de ton coté.
Pour des raisons de sécurités, le port 25 est de moins en moins utilisés.
C'est pourquoi j'utilise encore 'smtp.neuf.fr' avec le port 25.

Si tu prends autre chose comme serveur smtp, il faudra d'un part passé au port 587, et d'autre part utilisé une codification comme SSL ou TLS. Exemple : le serveur outlook.com de chez microsoft.

Il y a ce lien qui explique comme se configurer.

3) SENDMAIL_FROM. Tu dois mettre l'adresse email qui est connu chez aol.

Voici un exemple en php :

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="ISO-8859-1" />
<title>On test la fonction mail()</title>

<link rel="stylesheet" type="text/css" href="Styles.css" />
</head>

<body>
<?php
$to       = "Griggione < xxxxx@aol.com>";
$subject  = "Test 2 !";
$message  = "Voici un message envoyé depuis un script HTML/PHP avec le paramétrage de php.ini !";

$headers  = "MIME-Version: 1.0\n";
$headers .= "From:  xxxxx@aol.com\n";
$headers .= "X-Mailer: PHP/" . phpversion() . "\n";
?>

<h1>Envoi d'un message vers l'adresse E-MAIL : <?php echo $to ?></h1>

<?php
$envoi = mail($to, $subject, $message, $headers);

if ($envoi == true)	echo "<br /><h1>L'email a été envoyé avec succès.</h1>";
else					echo "<br /><h1>&eacute;chec de l'envoi d'un email</h1>";
?>

</body>
</html>
Avec ce test tu sauras si ton message est bien arrivé dans ta boîte aux lettres.

@+

----------------------------------------------------------------------------------------------------------------------------------------------------------------
Mon site : [www.jcz.fr]

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: griggione (---.44.85.79.rev.sfr.net)
Date: 17 January 2015 à 09:47

Bonjour Artemus24

Sympa ton code pour tester.

Avec smtp.fr.aol.com, voila le résultat :
Citation

Envoi d'un message vers l'adresse E-MAIL : griggione
Warning: mail(): SMTP server response: 553 5.7.1 <griggione@aol.com>: Sender address rejected: not logged in in D:\wamp\www\mail\mail.php on line 24
échec de l'envoi d'un email

Du coup j'ai modifier mon compte puisque je m'en sers plus depuis des années, sauf pour recevoir.
Je suis bien sorti avec smtp.neuf.fr et donc les mails partent.

Modif dans le php.ini en passant à smtp.neuf.fr et toujours pareil, même échec.

Citation

Envoi d'un message vers l'adresse E-MAIL : griggione
Warning: mail(): SMTP server response: 553 5.7.1 <griggione@aol.com>: Sender address rejected: not logged in in D:\wamp\www\mail\mail.php on line 24
échec de l'envoi d'un email

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: griggione (---.44.85.79.rev.sfr.net)
Date: 17 January 2015 à 10:07

RE

J'ai essayé de sortir avec une autre boite mail et donc modifié le php.ini :
SMTP = mail.griggione.info

J'ai la même erreur mais surtout j'ai toujours SMTP server response: 553 5.7.1 <griggione@aol.com> ???

J'ai même remis dans le php.ini SMTP = localhost et sendmail_from = you@yourdomain et toujours SMTP server response: 553 5.7.1 <griggione@aol.com> ???
Il y a uns inscription quelque part en plus du php.ini ?



Modifie 2 fois. Derniere modification le 17/01/2015 à 10:15 par griggione.

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: Otomatic (Modérateur)
Date: 17 January 2015 à 10:20

Bonjour,

> Sender address rejected: not logged in in D:\wamp\www\mail\mail.php on line 24
Ça voudrait dire que le serveur smtp demande une authentification, que ça ne m'étonnerais pas.
En ce qui me concerne, pour des serveurs SMTP avec authentification, j'utilise la class PHPmailer (Actuellement en version 5.2.9), avec, par exemple, comme paramètres :
$mail->SetLanguage('fr');
$mail->IsSMTP();
$mail->IsHTML      = false;
$mail->SMTPDebug   = false;
$mail->SMTPAuth    = true;

//Paramètres pour le serveur SMTP
$mail->Host        = "smtp_host_name"; // Par exemple 'mail.gandi.net'
// En utilisant un SMTP authentifié (SMTPAuth = true) et selon
// les FSI (Fournisseur de Services Internet) le port à utiliser
// et le protocole associé peuvent être différents.
// C'est le FSI qui donne les paramètres d'envoi par SMTP.
$mail->Port        = 25; //25 ou 587 ou '465 SSL' ou '995 TLS'
//$mail->SMTPSecure = "tls"; // tls ou ssl
$mail->Username    = "toto@monsite.net"; // Nom utilisateur du serveur SMTP
$mail->Password    = "mon_mot_de_passe"; // Mot de passe associé
$mail->From        = "titi@monsite.net";// Adresse expéditeur
$mail->FromName    = "Administrateur du Forum"; // Nom expéditeur
//Destinataire
$mail->AddAddress("tutu@monsite.net", "Nom"winking smiley; // Peut être répété pour plusieurs destinataires
                   
//Caractéristiques du message
$mail->CharSet     = "utf-8";
$mail->Subject     = $subject;
$mail->Body        = $message;
Et il y a plein d'autres possibilités.

---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: griggione (---.44.85.79.rev.sfr.net)
Date: 17 January 2015 à 10:52

Bonjour Otomatic

Ce que je comprend pas, avant de d'installer la V2.5, je sortais normalement.
Je suis allé voir dans ma wamp_old, et voila ce que j'avais :

[mail function]
; For Win32 only.
; [php.net]
SMTP = localhost
; [php.net]
smtp_port = 25

; For Win32 only.
; [php.net]
sendmail_from = you@yourdomain

Ce que j'ai besoin, par exemple dans un site en cours, que je puisse tester ma page contact

Otomatic a écrit:
-------------------------------------------------------
> En ce qui me concerne, pour des serveurs SMTP avec authentification, j'utilise la class PHPmailer

Bon d'accord mais concretement je dois faire quoi.
J'ai téléchargé l'archive et ?????

Je ne trouve même pas le fichier donné en exemple au-dessus.

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: Otomatic (Modérateur)
Date: 17 January 2015 à 17:37

Bonjour,

Je vais expliquer « un petit peu plus », mais comme pour tout, ma devise c'est RTFM.

Il faut mettre les fichiers class.phpmailer.php, class.smtp.php, PHPMailerAutoload.php dans un dossier du site, dossier dans lequel on met un autre dossier nommé language avec dedans phpmailer.lang-fr.php.

Dans le script qui doit envoyer le courriel et pour remplacer la fonction mail(), on met :
require_once('../inc/class.phpmailer.php'); //Avec le bon chemin

$mail = new PHPMailer();
$mail->SetLanguage('fr');
$mail->IsSMTP();
$mail->IsHTML      = false;
$mail->SMTPDebug   = false;
$mail->SMTPAuth    = true;

//Paramètres pour le serveur SMTP
$mail->Host        = "smtp_host_name"; // Par exemple 'mail.gandi.net'
// En utilisant un SMTP authentifié (SMTPAuth = true) et selon
// les FSI (Fournisseur de Services Internet) le port à utiliser
// et le protocole associé peuvent être différents.
// C'est le FSI qui donne les paramètres d'envoi par SMTP.
$mail->Port        = 25; //25 ou 587 ou '465 SSL' ou '995 TLS'
//$mail->SMTPSecure = "tls"; // tls ou ssl
$mail->Username    = "toto@monsite.net"; // Nom utilisateur du serveur SMTP
$mail->Password    = "mon_mot_de_passe"; // Mot de passe associé
$mail->From        = "titi@monsite.net";// Adresse expéditeur
$mail->FromName    = "Administrateur du Forum"; // Nom expéditeur
//Destinataire
$mail->AddAddress("tutu@monsite.net", "Nom" ); // Peut être répété pour plusieurs destinataires
                   
//Caractéristiques du message
$mail->CharSet     = "utf-8";
$mail->Subject     = $subject;
$mail->Body        = $message;

if(!$mail->Send())
	echo "Erreur d'envoi ".$mail->ErrorInfo;
else
	echo "PHPMailer : Message envoyé";

$mail->SmtpClose();

Il est préférable de procéder à un « nettoyage » du sujet et du message avant de les utiliser :
//Nettoyage du message
$subject = trim(preg_replace('#[\n\r]+#s', '', $subject));
// CRLF à chaque fin de ligne et suppression des octets null
$message = str_replace("\r", "\n", str_replace("\r\n", "\n", $message))
$message = str_replace(array("\n","\0","&#039;","`" ), array("\r\n",'',"'","'" ), $message);
// Remplacement d'un point (.) en début de ligne par deux points (..)
$message = str_replace("\r\n.", "\r\n..", $message);
$message = (substr($message,0,1) == '.' ? '.'.$message : $message);

---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: Artemus24 (---.70.16.109.rev.sfr.net)
Date: 17 January 2015 à 20:19

Salut Griggione.

Paramétrer l'envoi des messages depuis un script php vers ta boîte au lettre n'est pas toujours évident car d'un serveur smtp à un autre, il y a des particularité qui font que chez l'un, ça fonctionne mais pas chez l'autre.

Reprenons ton paramétrage chez SFR.
[mail function]
; For Win32 only.
; [php.net]
SMTP = smtp.neuf.fr
; [php.net]
smtp_port = 25

; For Win32 only.
; [php.net]
sendmail_from = griggione@aol.com

Je te communique mon php de test !
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="ISO-8859-1" />
<title>On test la fonction mail()</title>

<link rel="stylesheet" type="text/css" href="Styles.css" />
</head>

<body>
<?php
ini_set("smtp", "smtp.neuf.fr"winking smiley;
ini_set("smtp_port", 587);
ini_set("sendmail_from", "Artemus <artemus@jcz.fr>"winking smiley;


$to       = "Griggione <griggione@aol.com>";
$subject  = "Test !";
$message  = "Voici un message envoyé depuis un script HTML/PHP !";

$headers  = "MIME-Version: 1.0\n";
$headers .= "From: artemus@jcz.fr\n";
$headers .= "X-Mailer: PHP/" . phpversion() . "\n";
$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
?>

<h1>Envoi d'un message vers l'adresse E-MAIL : <?php echo $to ?></h1>

<?php
$envoi = mail($to, $subject, $message, $headers);

if ($envoi == true)		echo "<br /><h1>L'email a été envoyé avec succès.</h1>";
else				echo "<br /><h1>&eacute;chec de l'envoi d'un email</h1>";
?>

</body>
</html>

Je viens de t'envoyer un message de test et je n'ai eu aucun problème.

@+

----------------------------------------------------------------------------------------------------------------------------------------------------------------
Mon site : [www.jcz.fr]



Modifie 1 fois. Derniere modification le 17/01/2015 à 20:19 par Artemus24.

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: griggione (---.44.85.79.rev.sfr.net)
Date: 18 January 2015 à 09:03

Bonjour tous,

Otomatic

Otomatic a écrit:
-------------------------------------------------------
> Je vais expliquer « un petit peu plus »,

Je te remercie, tu es une bénédiction pour wampserver

Otomatic a écrit:
-------------------------------------------------------
> Il faut mettre les fichiers class.phpmailer.php, class.smtp.php, PHPMailerAutoload.php dans un dossier du site,
> dossier dans lequel on met un autre dossier nommé language avec dedans phpmailer.lang-fr.php.

OK, en fait on garde le dossier PHPMailer et on laisse uniquement les fichiers nécessaires

Otomatic a écrit:
-------------------------------------------------------
> Dans le script qui doit envoyer le courriel et pour remplacer la fonction mail(), on met :

C'est là qu'est mon interrogation, je suppose que tu parles du script qu'on se sert sur le site en cours ?

Artemus24

Artemus24 a écrit:
-------------------------------------------------------
> Reprenons ton paramétrage chez SFR.
[mail function]
 ; For Win32 only.
 ; [php.net]
 SMTP = smtp.neuf.fr
 ; [php.net]
 smtp_port = 25
 
 ; For Win32 only.
 ; [php.net]
 sendmail_from = griggione@aol.com

En modifiant le php.ini, en gardant ton 1er php de test et mettant le port en 587 :

Citation

Envoi d'un message vers l'adresse E-MAIL : griggione
L'email a été envoyé avec succès.

Maintenant je laisse le php.ini d'origine et j'utilise ton php de test 2 et en rectifiant le bout de code :

ini_set("smtp", "smtp.neuf.fr"winking smiley;
ini_set("smtp_port", "587"winking smiley;
ini_set("sendmail_from", "griggione <griggione@aol.com>"winking smiley;

Citation

Envoi d'un message vers l'adresse E-MAIL : griggione
Warning: mail(): Failed to connect to mailserver at "localhost" port 587, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D:\wamp\www\mail\mail.php on line 29
échec de l'envoi d'un email

Je tente en mettant le port 25 dans ton code !
Même message d'erreur mais avec at "localhost" port 25

Donc je reviens à ton 1er php de test et je modifie le php.ini comme conseillé.
Et là c'est bon de nouveau.
Juste rappeller qu'à chaque modif du php.ini, il faut redemarrer les services.

Merci à tous de vos accompagnements indispensables aux débutants que nous sommes !

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: Otomatic (Modérateur)
Date: 18 January 2015 à 10:09

Bonjour,

Pour contredire : « Jamais le Dimanche » !
Citation
griggione
> Dans le script qui doit envoyer le courriel et pour remplacer la fonction mail(), on met :
C'est là qu'est mon interrogation, je suppose que tu parles du script qu'on se sert sur le site en cours ?
Oui.
Mais, dans mes script qui pour certains proviennent « d'autre part », j'ajoute seulement une variable, par exemple $phpmailer = true et, à l'endroit du script qui utilise la fonction mail(), je fais :
if(!$phpmailer)
  mail(.... .... .... );
else {
//Tout ce qui concerne l'envoi par PhpMailer
}
De cette manière, on peut revenir à la fonction mail() d'origine très facilement.

---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message
Re: Activer l'option mail()
Envoyé par: griggione (---.44.85.79.rev.sfr.net)
Date: 18 January 2015 à 12:02

RE

Otomatic a écrit:
-------------------------------------------------------
> Pour contredire : « Jamais le Dimanche » !

smiling smiley

Je te remercie.

Options: Répondre•Citer ce Message


Aller à : Liste des Forums•Liste des messages•Recherche•Connexion
Désolé, seuls les utilisateurs connectés peuvent envoyer des messages dans ce forum.
Cliquer ici pour se connecter

design by jidePowered by Alter Way get firefoxget PHP