Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Configurer php pour envoi de mail

skad, le vendredi 9 décembre 2005 à 18:55:33
Bonsoir.

J'ai instalé appache 2...et php5

et je voudrais savoir comment configurer php.ini pour envoillé un mail a partir d'un formulaire.

dois je instaler un serveur smtp ?
Répondre à skad  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[Dal], le vendredi 9 décembre 2005 à 20:34:11
dois je instaler un serveur smtp ?

Non (pas nécessairement),

Utilise Pear :

http://www.commentcamarche.net/forum/affich-1358461


Dal
Répondre à [Dal]

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Skad, le vendredi 9 décembre 2005 à 21:19:47
Le problem c'est que je ne sais pas comment configurer sendmail et ensuite ba il n'y a plus la contribution du 24-janv-2004

peut on m'expliquer comment configurer mon send mail ?
Répondre à Skad

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[Dal], le lundi 12 décembre 2005 à 09:24:57
.. tu as mal vu.

La voilà (le code est de Roberto Silva) :

<?
include("Mail.php");

$recipients = "mail_to@domain.mail";

$headers["From"]    = "mail_from@domain.mail";
$headers["To"]      = "mail_to@domain.mail";
$headers["Subject"] = "Test message";

$body = "TEST MESSAGE!!!";

$params["host"] = "smtp.server";
$params["port"] = "25";
$params["auth"] = true;
$params["username"] = "user";
$params["password"] = "password";

// Create the mail object using the Mail::factory method
$mail_object =& Mail::factory("smtp", $params);

$mail_object->send($recipients, $headers, $body);
?>


Relis mon message cité ci-dessus sur l'usage des trois derniers paramètres, qui est particulier aux serveur smtp nécessitant une authentification.

Utiliser cet objet PEAR t'évite d'avoir à paramétrer sendmail ou un autre serveur de mail, en utilisant le serveur smtp de ton FAI.


Dal
Répondre à [Dal]

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Skad, le lundi 12 décembre 2005 à 13:06:32
Ba merci j'ai du mal lire.....je suis desolé

Encore merci

mais ca ne resould mon problem qu'en parti car j'ai 4 forum qui on comme option l'envoi de mal en cas de reponce....

hors celon ton scrip il faudrais que je mofi leur scrip....

alors peut on medire comment configurer sendmail ?
Répondre à Skad

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
skad, le lundi 12 décembre 2005 à 17:25:39
j'ai mit le scrip et je l'ai modifier pour voir acces a mon forumulaire mais....

j'ai mit ca

	include("Mail.php");
	$headers["From"]    = $_POST['add'];
	$headers["To"]      = "lamourouxvincent@wanadoo.fr";
	$headers["Subject"] = $_POST['suget'];

	$body = $_POST['text'];

	$params["host"] = "smtp.tele2.fr";
	$params["port"] = "25";
	$params["auth"] = false;
	$params["username"] = "lamourouxvincent";
	$params["password"] = "none";

	// Create the mail object using the Mail::factory method
	$mail_object =& Mail::factory("smtp", $params);

	$mail_object->send($recipients, $headers, $body);



alors je supose que Mail.php est un fichier que le scrip va chercher dans les libreries.....

enfin je n'arrive pas a faire envoillé un mail
Répondre à skad

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[Dal], le lundi 12 décembre 2005 à 17:48:01
Salut skad,

Utilise phpinfo(); pour vérifier si PEAR est installé sur ton système.

S'il ne l'est pas, tu peux l'obtenir là http://pear.php.net et le Package "Mail" là : http://pear.php.net/package/Mail

Contrôle que tu récupères bien des variables avec quelque chose dedans. Tu pourrais essayer avec des données en dur avant.

Il manque des guillements à "false" dans ta ligne $params["auth"] = false;

Ne définit pas username, ni password, puisque "auth" est "false".

Consulte les logs de ton serveur http pour rechercher les erreurs loguées.

La doc de l'objet "Mail" dans PEAR est là : http://pear.php.net/manual/en/package.mail.mail.php


Dal
Répondre à [Dal]

22


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gastongfaim3, le samedi 28 juin 2008 à 11:56:01
ni true ni false ne doivent avoir des guillhemets : ce sont des booléens

gaston
Répondre à gastongfaim3

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
skad, le lundi 12 décembre 2005 à 18:18:39
Pour false regarde le scrip que tu m'a donne plus haut:
true n'a pas de ""

et ensuite pear est present
et mes variables ont des donnes
Répondre à skad

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[Dal], le lundi 12 décembre 2005 à 19:27:39
Hmm.. en supposant toujours que le serveur smtp ne réclame pas d'authentification, retire les lignes "auth", "username" et "password" (supprime les carrément).

As-tu consulté les logs httpd ?

Les fonctions "factory" et "send" de l'objet "mail" renvoient aussi des erreurs en cas de problème d'exécution. Si tu ne trouves pas la cause de ton erreur, elle est sans doutes décrite dans l'objet PEAR_Error retourné.

Utilise PEAR::isError() pour savoir si celà retourne une erreur http://pear.php.net/manual/en/core.pear.pear.iserror.php

et

PEAR_Error::getMessage() pour récupérer le message d'erreur http://pear.php.net/manual/en/core.pear.pear-error.getmessage.php

Enfin, vérifie aussi que tu as le droit d'utiliser le serveur smtp.tele2.fr .. généralement, celà suppose que tu soit connecté avec une IP attribuée par Tele2.


Dal
Répondre à [Dal]

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
skad, le lundi 12 décembre 2005 à 21:10:14
alors pour l'ip je peus car je suis chez tele2 comme fai

et ensuite je vais tester le reste merci
Répondre à skad

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
skad, le lundi 12 décembre 2005 à 23:48:24
Bon voila j'ai utilisé le scrip fourni plus haut pour voir les erreures:

j'ai donc mis se scrip (en esperant que c'est un code valide)

<?
include("Mail.php");
include("PEAR.php");

$recipients = "lamourouxvincent@wanadoo.fr";

$headers["From"]    = "mail_from@domain.mail";
$headers["To"]      = "lamourouxvincent@wanadoo.fr";
$headers["Subject"] = "Test message";

$body = "TEST MESSAGE!!!";

$params["host"] = "smtp.tele2.fr";
$params["port"] = "25";
$params["auth"] = false;


// Create the mail object using the Mail::factory method
$mail_object =& Mail::factory("smtp", $params);

$mail_object->send($recipients, $headers, $body);

	if (PEAR::isError (send()))
	{
		print "envoi raté car ".send()->getMessage ()."<br />\n";
	}

?>




Et ba au final je n'ai eu aucun messages d'erreurs
Répondre à skad

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[Dal], le mardi 13 décembre 2005 à 10:45:15
Salut Skad,

Je n'ai pas de PHP avec PEAR installé sous la main, mais voilà mon analyse.

1.

"isError" est une fonction de base de PEAR. Elle nécessite un argument. La fonction teste si cet argument est un objet PEAR_Error. Comme l'indique la documentation, le résultat des fonctions PEAR ($mail_object dans ton cas pour le résultat de "factory") devient un objet PEAR_Error en cas d'erreur.

2.

S'agissant du test du résultat de "send", il te faut récupérer ledit résultat dans une variable (par exemple $send_result).

3.

Si $mail_object est un objet PEAR_Error, tu as alors accès, à l'intérieur de cet objet, aux fonctions et données définies par cet objet, et notamment la fonction getMessage. L'accès aux fonctions d'un objet se fait avec la syntaxe $objet->fonction();

Pareil pour "$send_result".

4.

Donc, ton contrôle d'erreur devrait s'écrire plutôt comme çà :

$mail_object =& Mail::factory('smtp', $params); 
if (PEAR::isError($mail_object)) 
{
  print "<p>construction de l'objet 'Mail' ratée car ";
  die($mail_object->getMessage()); 
} else
{
  print "<p>objet 'Mail'  construit !";
}

$send_result = $mail_object->send($recipients,$headers,$body); 
if (PEAR::isError($send_result)) 
{
  print "<p>envoi de l'email raté car ";
  die($send_result->getMessage()); 
} else
{
  print "<p>envoyé !";
}


5.

Tu n'as toujours pas indiqué si tes logs httpd contenaient des erreurs (/var/log/httpd-error.log).


Dal
Répondre à [Dal]

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
skad, le mardi 13 décembre 2005 à 12:08:12
Meci Dal pour cette reponce et surtout cette corection (je sais j'ai des progres a faire mais on doit tous apprendre :p)

Bon sinon pour mon http_log.....je n'y ais rien compris...
Je suis incapable de te dire si il y a une erreure ou pas.

mais je vais tester imediatement ton scrip

merci encore
Répondre à skad

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[Dal], le mardi 13 décembre 2005 à 14:00:06
Re :)

Bon sinon pour mon http_log.....je n'y ais rien compris...

Les logs ne sont pas toujours évidents à lire. Il faut aller tout en bas du fichier pour y voir les messages d'erreur les plus récents.

Dans les versions récentes de PHP, par défaut, celui-ci est paramétré pour ne pas afficher les messages sur les pages produites (pour des raisons de sécurité), mais pour les logguer seulement..

Si celà te semble compliqué, et si tes scripts PHP ne sont pas en production, tant que tu débogues tes scrits, tu peux modifier les paramètres de ton php.ini comme celà

error_reporting = E_ALL
display_errors = On
display_startup_errors = On


Après avoir relancé Apache, tu verras les erreurs et les avertissements s'afficher à mesure qu'ils sont générés (s'il y en a).

Quant tes scripts sont au point, rétablit les valeurs display_errors et display_startup_errors en Off (tout en gardant log_errors = On).


Dal
Répondre à [Dal]

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
skad, le mardi 13 décembre 2005 à 17:31:24
Bon j'ai testé le scrip et ba il ne m'affiche rien
Répondre à skad

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[Dal], le mercredi 14 décembre 2005 à 10:36:24
Ba çà alors, c'est vraiment dommage !

Bon sérieusement.. j'ai finit par dégoter une machine installée avec PEAR.

Celà "marche" chez moi.

Voilà le code :

<?
# include("PEAR.php");
include("Mail.php");

$recipients = "destinataire@titi.fr";

$headers["From"]    = "envoyeur@toto.com";
$headers["To"]      = "destinataire@titi.fr";
$headers["Subject"] = "Test message";

$body = "TEST MESSAGE!!!";

$params["host"] = "smtp.fai.net";
$params["port"] = "25";


$mail_object =& Mail::factory('smtp', $params);
if (PEAR::isError($mail_object))
{
  print "<p>construction de l'objet 'Mail' ratée car ";
  die($mail_object->getMessage());
} else
{
  print "<p>objet 'Mail'  construit !";
}

$send_result = $mail_object->send($recipients,$headers,$body);
if (PEAR::isError($send_result))
{
  print "<p>envoi de l'email raté car ";
  die($send_result->getMessage());
} else
{
  print "<p>envoyé !";
}

?>

Le fait de déclarer explicitement l'inclusion de PEAR ne sert à rien chez moi (d'ailleur je ne t'ai pas demandé de le faire). Si tu le fais, fait le *avant* tout autre module (avant le include concernant Mail), et non pas après.

Pour tes adresses e-mail, utilise des adresses valides (et non pas "mail_from@domain.mail" qui est un *exemple*).


Dal
Répondre à [Dal]

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[Dal], le mercredi 14 décembre 2005 à 10:53:07
Une dernière chose.. en plus de mes commentaires ci-dessus.

Si ce que tu inséres dans les données provient d'un formulaire, fait en sorte de bien contrôler que ce que tu passes à la fonction Mail ne contient pas de caractères parasites ou des structures de messages destinés à en perturber le fonctionnement (permettant l'exécution de commandes shell avec le process Apache, ou l'encapsulation d'e-mails par des spammeurs détournant ton script).

Ces problèmes sont largement discutés là :

http://fr2.php.net/manual/en/ref.mail.php

A toi de jouer.


Dal
Répondre à [Dal]

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
skad, le samedi 17 décembre 2005 à 14:24:54
Bon je te remerci vraiment du fon du coeur DAL
tu es mon sauveur je vais donc adapter ton scrip pour le metre dans ma page...
merci encore
Répondre à skad

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
bou7mis, le vendredi 5 octobre 2007 à 14:45:16
Bonjour,

j'ai un problème avec l'utilisation du package pear
dans mon cas j'utilise le driver "mime" lors de l'instance de la classe Mail car mon message
est au format HTML.
voici mon code

include_once("Mail.php");
/**Paramètres SMTP et port*/
$params["host"] = "smtp.planet.tn";
$params["port"] = "25";
$recipients = "aaaa@aaaa.aaa";
$mail_mime =& Mail::factory('mime', $params);
$mail_mime->setHTMLBody("<b>TEST</b>");
$mail_mime->setSubject("test");
$mail_mime->setFrom("bbbb@bbbb.bbb");
$hdrs =& Mail_mime::headers();
echo $hdrs;
$body =& Mail_mime::get();
echo $body;
$mail_send =& Mail::factory('sendmail', $params);
if($mail_send->send($recipients,$hdrs,$body)){
echo "<center>Envoyé</center>";
}
else {
echo "<center>erreur</center>"; echo "<center>".$mail->error_log."</center>";
}

et ça me sort l'erreur suivante :Fatal error: Using $this when not in object context in /usr/share/pear/Mail/mime.php on line 591
que dois je faire ?
Répondre à bou7mis

20


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[Dal], le mercredi 10 octobre 2007 à 16:17:17
Salut,

Il est possible que ce problème soit dû au fait que tu utilises une version ancienne de PEAR sur un serveur PHP5. Met à jour le module avec la dernière version disponible :

http://pear.php.net/package/Mail
http://pear.php.net/package/Mail_Mime

Vois cette discussion sur ce type d'erreurs PHP :

http://www.webmaster-talk.com/php-forum/43174-fatal-error-us­ing-when-not-object.html


Dal
Répondre à [Dal]

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
omi_girl@hotmail.fr, le lundi 8 octobre 2007 à 19:28:55
Bonjour,
redige une lelltre de réclamation au recervveur d la poste pour un colis que tu as envoé en recommandé ett ui n'est pas errivvé à son destinataire
Répondre à omi_girl@hotmail.fr

21


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
comkidiirait, le vendredi 23 novembre 2007 à 15:20:18
Bonjour,
Alors moi je souhaite savoir si qq1 a déja essayer de travailler avec online.net...

J'ai mis au point toute une solution php pour gérer les campagnes newsletter. Mon problème c'est que leur web master me dis que les scripts php ont une durée d'execution limitée a 60 sec...pas évident pour gérer une liste 2000 inscrits...il me dit aussi qu'on ne pas faire d'authentification smtp via un scipt php....pkoi de telles limitations? avez vous un autres asctuce???

merci
Répondre à comkidiirait

Résultats pour configurer php pour envoi de mail

Problème config serveur pour envoie mail (Résolu) Bonjour, Je suis actuellement en train de tester mon site web mais j 'ai toujours un soucie avec mon formulaire d'envoi mail. J'utilise php5 et MySQL. j'ai toujour un message d'erreur qui apparait lors de mes tentatives... www.commentcamarche.net/forum/affich-6232718-probleme-config-serveur-pour-envoie-mail
Probléme configuration Windows live mail (Résolu) Bonjour, Je n'arrive pas a configurer windows live mail, il me met toujours : Impossible d'envoyer ou de recevoir les messages pour le compte POP3. Impossible de trouver l'hôte POP3. Vérifiez que vous avez entré correctement le nom du... www.commentcamarche.net/forum/affich-7155129-probleme-configuration-windows-live-mail
Retour à la ligne formulaire PHP mail (Résolu) Bonjour, Je sais que c'est question a souvent été posée mais bon... Je veux retranscrire les retours à la ligne dans mon form php en envoi mail J'ai essayé streplace de \r\n en mais comme j'ai désactivé les htmlspecialchars, ça ne... www.commentcamarche.net/forum/affich-4018101-retour-a-la-ligne-formulaire-php-mail

Résultats pour configurer php pour envoi de mail

[PHP] Fonction mail()La fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez... www.commentcamarche.net/faq/sujet-117-php-fonction-mail

Résultats pour configurer php pour envoi de mail

Lire et écrire un fichier de config (Résolu)Bonjour, je cherche a ecrire dans un fichier des infos saisi dans un formulaire. Pkus présisément, je cherche a faire un fichier " config.php " et que les différentes variable $url, $mailproprio, $nomdusite, ... soit accésible et modifiable par... www.commentcamarche.net/forum/affich-4130178-lire-et-ecrire-un-fichier-de-config
Installer un site php chez free (Résolu)Bonjour, Après avoir cherché en vain sur ce forum, voivi mon problème : J'ai un espace web chez free. J'upload phpnuke 7.6.0.2.9FR. Je modifie mon config.php avec mes accès: host 'sql.free.fr' user 'mon_login' pass... www.commentcamarche.net/forum/affich-1335428-installer-un-site-php-chez-free
[PHP] Redirection header() message d'erreur (Résolu)Bonjour, J'ai un problème avec mon code PHP j'essaie de faire une redirection, mais j'ai un message d'erreur je comprends pas pourquoi www.commentcamarche.net/forum/affich-3898945-php-redirection-header-message-d-erreur

Résultats pour configurer php pour envoi de mail

PHP - Mail et fonctions réseauPHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est... www.commentcamarche.net/contents/php/phpmail.php3