Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1685 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Mailing : fonction mail() ou autre ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mailing : fonction mail() ou autre ??

n°1718039
redah75
Posté le 15-04-2008 à 18:26:14  profilanswer
 

Bonjour,
 
j'ai deja poste au meme sujet mais j'ai pas eu de reponses : http://forum.hardware.fr/hfr/Progr [...] m#t1690372
 
je repose ma question autrement :)
quelle fonction me conseillez vous utiliser afin de realiser ce que je dois faire: selectionner des destinataires depuis la base de donnees et envoyer un mail avec une ou plusieurs pieces attachees...?
 
ou sinon, voyez vous un probleme ds le script que j'ai mis ??
 
merci de votre aide
Reda


Message édité par redah75 le 15-04-2008 à 18:29:41
mood
Publicité
Posté le 15-04-2008 à 18:26:14  profilanswer
 

n°1718045
masterpsx
Aigloun foutougrafe
Posté le 15-04-2008 à 18:48:44  profilanswer
 

Je pense pas que ton script est un réel problème mais c'est pas toujours évident ce genre de fonction, franchement je suis d'accord avec naeh, PHPMailer est l'idéal pour les maillings list ou les newsletters, tu ne feras jamais mieux et ca s'adaptera sans problème.

n°1718054
wrksx
Posté le 15-04-2008 à 19:13:51  profilanswer
 

pour plus de réponse il faudrait que tu puisse déterminer quel type (taille, etc) de fichier coince, il faudrait resserrer un peu les mailles du filet si j'ose dire...  
 
Je me demande si il ne manque pas un /n a la fin de la ligne 63 (il faut pas une ligne vide apres les données ??)... je dit ça mais moi non plus je suis pas très calé en mail... =) dit moi ce que t'en pense.

n°1718415
redah75
Posté le 16-04-2008 à 11:40:34  profilanswer
 

merci les gars pour vos reponses :)
 
masterpsx : je vais voir ce que je pex faire concernant PHPMailer, je ne m'y connais vrmt pas!!
 
wrksx : j'ai bien mis un '\n' a la fin de la ligne 63 mais ca n'a rien change :( je suis tres embete, je ne sais quoi faire :(
 
ce qui est bizarre c'est que certain fichiers sont bons, mais d'autres non, c peut etre au moment de l'encodage que ca foire...!!

n°1718439
redah75
Posté le 16-04-2008 à 12:02:58  profilanswer
 

je rajoute encore autre chose, qui rend les choses tres mysterieuses : les fichiers qui ne s'ouvrent pas sur les autres ordi, s'ouvrent sur mon ordi, je ne sais vraiment pas pk, la seule chose qui differe c'est que moi j'ai vista et les autres xp!!

n°1718443
masterpsx
Aigloun foutougrafe
Posté le 16-04-2008 à 12:09:33  profilanswer
 

PHPMailer est une class, ca ne t'empechera pas de créer ta propre fonction pour ton script mais au lieu d'utiliser simplement la fonction mail() de php, tu utilises ses fonctions qui sont trés complétes (smtp, fichiers joint, envoie multiple ect...).  
 
Je comprend que tu veuilles créer tout toi-même mais pour certaine choses (mail, status serveur, pdf ect...) il vaut mieux parfois utiliser des class connus et au point.

n°1718466
redah75
Posté le 16-04-2008 à 12:41:32  profilanswer
 

oui t'as raison, j'ai deja commence a lire la doc sur PHPMailer. tu n'aurais pas par hasard un lien pour ca? g trouve http://stephaneey.developpez.com/t [...] phpmailer/ mais qui date de 2004, je ne sais pas si c'est toujours d'actualite :)
 
j'aimerai aussi te poser qlq question quant a l'utilisation de cette classe si ca ne te derange pas.
y a t il un moyen plus simple de faire un envoi multiple et peronnalise? avec mail je fesais :
 

Code :
  1. $sel = mysql_query("SELECT prenom, nom, email FROM annuaire WHERE ...." );
  2. while($res = mysql_fetch_array($sel))
  3. {
  4. $text = "Cher $res[prenom] $res[nom]<br> ......"
  5. mail(......);
  6. }


 
quel est a ton avis le meilleur moyen de gerer ce mailing: sauvegarder les destinataires ds une bdd ou ds une variable de session de type tableau...??
 
Merci


Message édité par redah75 le 16-04-2008 à 13:09:06
n°1718523
masterpsx
Aigloun foutougrafe
Posté le 16-04-2008 à 13:17:14  profilanswer
 

Ca fait un moment que je code plus trop et n'ai pas regardé cette class mais si tu ouvre le fichier README, il y a un exemple assez simple. Sinon le site officiel si tu comprend un peu l'anglais : http://phpmailer.codeworxtech.com/tutorial.html
 
Disons que de mémoire tu pourrais ne rajouter que l'adresse email dans ta boucle au lieu de faire un envoie pour chaque membre mais si ton email est personalisé (nom et prénom) ca reviendra au même.

n°1718544
redah75
Posté le 16-04-2008 à 13:37:56  profilanswer
 

OK, donc il y a pas un moyen autre qu'envoyer le mail autant de fois que le nombre des destinataires???
cela ne posera pas de probleme au niveau spams???

n°1718572
wrksx
Posté le 16-04-2008 à 13:58:54  profilanswer
 

si tu envoi de nombreux mails il te faudra certainement étaler les envoi dans le temps pour ne pas surcharger le serveur.

mood
Publicité
Posté le 16-04-2008 à 13:58:54  profilanswer
 

n°1718599
redah75
Posté le 16-04-2008 à 14:27:22  profilanswer
 

oooh lala!! ca je ne saurais pas le faire :D

n°1718613
masterpsx
Aigloun foutougrafe
Posté le 16-04-2008 à 14:48:55  profilanswer
 

redah75 a écrit :

OK, donc il y a pas un moyen autre qu'envoyer le mail autant de fois que le nombre des destinataires???
cela ne posera pas de probleme au niveau spams???


Ca depend, si tu veut personalisé le message avec le nom du membre non sinon oui c'est possible, en ce qui concerne le serveur ca dependra du nombre de membre, de ton hebergeur, de la maniére dont tu envois les emails (smtp ou mail()) ect... Pour etaler, c'est pas forcement compliqué, tu peut rajouter un champ dans ta table pour le statut d'envoie par exemple et limiter l'envoie groupé à un certain nombre  (50, 100 ect...).

n°1719106
redah75
Posté le 17-04-2008 à 12:01:42  profilanswer
 

ca commence mal, je n'arrive meme pas a faire fonctionner phpmailer :(
j'ai suivi a la lettre l'installation : http://phpmailer.codeworxtech.com/install.html & http://phpmailer.codeworxtech.com/tutorial.html, mais lorsque je veux envoyer un mail test, ca fait rien et ca m'affiche rien sur la page!!
 
voici mon code, y voyez vous une erreur???
 

Code :
  1. require("class.phpmailer.php" );
  2. $mail = new PHPMailer();
  3. $mail->IsSMTP(); // telling the class to use SMTP
  4. $mail->Host = "smtp.domaine.com"; // SMTP server
  5. $mail->From = "mailing@domaine.com";
  6. $mail->AddAddress("web@domaine.com" );
  7. $mail->Subject = "First PHPMailer Message";
  8. $mail->Body = "Hi! \n\n This is my first e-mail sent through PHPMailer.";
  9. $mail->WordWrap = 50;
  10. if(!$mail->Send())
  11. {
  12.    echo 'Message was not sent.';
  13.    echo 'Mailer error: ' . $mail->ErrorInfo;
  14. }
  15. else
  16. {
  17.    echo 'Message has been sent.';
  18. }
  19. ?>
  20. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  21. <html>
  22. <head>
  23. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  24. <title>Document sans titre</title>
  25. </head>
  26. <body>
  27. Bonjour
  28. </body>
  29. </html>


 
merci encore une fois de votre aide

n°1719118
redah75
Posté le 17-04-2008 à 12:09:21  profilanswer
 

ou sinon, que pensez vous de la classe mime.mail est elle mieux que phpmailer?

n°1719151
masterpsx
Aigloun foutougrafe
Posté le 17-04-2008 à 12:31:13  profilanswer
 

C'est sur que si c'est le code de ta page, ca marchera jamais, tu n'as même pas ouvert php, le smtp est optionel commence par un truc simple et verifie que ta class se trouve au bon endroit :
 
<?php
require("class.phpmailer.php" );
$mail = new PHPMailer();
$mail->From = "tonmail@hotmail.com";
$mail->AddAddress("tonemaildetest@hotmail.com" );
$mail->Subject = "First PHPMailer Message";
$mail->Body = "Hi! \n\n This is my first e-mail sent through PHPMailer.";
 
if(!$mail->Send())
{
   echo 'Message was not sent.';
   echo 'Mailer error: ' . $mail->ErrorInfo;
}
else
{
   echo 'Message has been sent.';
}
?>  
 

n°1719177
redah75
Posté le 17-04-2008 à 13:13:14  profilanswer
 

wow, alors la g rien compris, maintenant que j'ai enleve SMTP ca marche bien :) a quoi ca sert alors de d'utiliser le SMTP? quels sont les avantages et inconvenients?
 
l'ouverture de la balise php etait un oublie lorsque j'ai copie le code pour le poster :)

n°1719182
redah75
Posté le 17-04-2008 à 13:21:56  profilanswer
 

j'ai trouve ca :
What mailer gives me the best performance?  
On a single machine the mail() or sendmail mailers give you the best performance because they do not have the added overhead of SMTP. If you have you have your mail server on a another machine then SMTP is your only option, but you do get the benefit of redundant mail servers.
 
devrais alors oublie SMTP et utiliser la methode Mail ??

n°1719183
masterpsx
Aigloun foutougrafe
Posté le 17-04-2008 à 13:22:41  profilanswer
 

Le smtp c'est pour utiliser un serveur smtp de courrier tout simplement mais dans ce cas il faut préciser ton serveur voir le nom d'utilisateur et le mot de passe si besoin. Si tu avais laissé les valeurs par defaut, ca peut pas marcher évidement (vu que le serveur n'existe pas) et en les supprimant ca utilisera la fonction mail() de PHP tout simplement :)
 
PS : Je connais pas mime.mail désolé

n°1719185
redah75
Posté le 17-04-2008 à 13:27:37  profilanswer
 

et quest ce que tu me conseilles utiliser?? mail ou smtp? sachant que je vais devoir faire des mailing qui peuvent depasser 1000 ou 2000 destinataires, avec 1 ou plusieurs pieces attachees...
 
j'oublie maintenant mime mail puisque phpmailer a l'air de bien marcher ;)

n°1719198
masterpsx
Aigloun foutougrafe
Posté le 17-04-2008 à 13:59:37  profilanswer
 

Difficile a dire, ca depend de ton hebergeur aussi, il est fréquent qu'il y est des restrictions à ce niveau d'ou l'interet d'utiliser un serveur smtp dans ce cas, sinon mail() est probablement plus rapide.

n°1719218
redah75
Posté le 17-04-2008 à 14:28:25  profilanswer
 

je suis en dedie chez OVH, et le SMTP semble pose probleme!!
je vais donc utiliser Mail() et te tiendrai au courant... ;)
juste une petite precision, Mail() est attribue par defaut si on met pas $mail->IsMail(); ???
 
et une derniere question :)
pour les fichier attaches telecharges depuis un formulaire, quel est le meilleur moyen de les stocker, ds une base de donnees au format blob ou ds un dossier sur le serveur??
 
Merci bien


Message édité par redah75 le 17-04-2008 à 14:30:33
n°1719239
masterpsx
Aigloun foutougrafe
Posté le 17-04-2008 à 15:07:32  profilanswer
 

Pas besoin de IsMail(), dailleur ca existe cette fonction dans cette class ? Tu dois juste préciser si tu veut utiliser smtp.
 
Peut importe pour les fichiers attachés, si tu l'upload via un formulaire, il sera envoyé sur le serveur donc a toi de voir si tu veut le stocker avant ou pendant. Tu dois juste utiliser la fonction AddAttachment()  de la class mais je peut pas t'en dire beaucoup plus, j'ai jamais essayé cette fonctionalité, j'ai toujours envoyé simplement des mails au format HTML.

n°1719253
redah75
Posté le 17-04-2008 à 15:40:09  profilanswer
 

Ok merci bp ;)
 
Oui IsMail() existe ds cette classe :) : http://stephaneey.developpez.com/t [...] mailer/#L5

n°1721239
redah75
Posté le 21-04-2008 à 18:49:34  profilanswer
 

Bonjour, j'espere que vous avez passe un bon week end :)
je suis encore de retour avec des nouvelles questions :)
 
y a t il un moyen de mettre un accuse de reception?
apparement le X-Confirm-Reading-To ne fonctionne pas correctement!!
 
masterpsx : tu m'avais conseille d'etaler les envoi dans le temps pour ne pas surcharger le serveur, pourras tu me donner plus de details stp? je ne vois vraiment pas cmt faire!!
 
Merci bien
Reda

n°1721473
masterpsx
Aigloun foutougrafe
Posté le 22-04-2008 à 10:24:47  profilanswer
 

Je crois pas que phpmailer a une option pour les accusés de reception, en même temps si c'est pour une newsletter encore heureux, tu veut pas recevoir 2000 accusés je suppose.
Je connais pas du tout "X-Confirm-Reading-To" désolé, je peut pas t'aider la dessus, comme je te l'ai dis mon utilisation de cette class ou de la fonction mail s'est toujours limité a du classique, a savoir envois d'email au format html et texte.
 
C'est pas moi qui t'est conseillé de scinder tes envois, c'est wrksx, c'est effectivement une bonne idée si ton hebergeur te limite et que tu as beaucoup de membre.
 
 Comme je te l'ai dis plus haut, tu peut par exemple rajouter un champ "status" (1 ou 0 par exemple) dans ta table membre (ou abonné à la newsletter) que tu met à jour lors de l'envoie du mail, de cette façon tu sais a qui tu as envoyé déja le mail. Ensuite rien de plus simple de vérifier si le champ est a 1 et de rajouter une limite dans ta requéte mysql. (exemple pour n'envoyer que 50 email : WHERE status = 0 ORDER BY id LIMIT 0, 50).

n°1721511
redah75
Posté le 22-04-2008 à 10:48:59  profilanswer
 

Je pense avoir trouve la solution :) je te la donne, elle te/vous sera peut etre utile un jour ;)
j'ai telecharge et installe la derniere version phpmailer v2 qui contient une propriete de confirmation: $ConfirmReadingTo
http://phpmailer.codeworxtech.com/properties.html
 
ah, desole wrksx, g attribue ton idee a qlq un d'autre :)
 
OK, pour le principe, g compris, mais comment envoyer les 50 premiers mails ds un premier temps, puis qlq secondes ou minutes apres, j'envoie 50 autres ainsi de suite... ??
deja, comment pourrais je savoir si mon serveur est limite ou s'il sature?? je suis sur un serveur dedie.

n°1721614
masterpsx
Aigloun foutougrafe
Posté le 22-04-2008 à 11:28:54  profilanswer
 

redah75 a écrit :

OK, pour le principe, g compris, mais comment envoyer les 50 premiers mails ds un premier temps, puis qlq secondes ou minutes apres, j'envoie 50 autres ainsi de suite... ??
deja, comment pourrais je savoir si mon serveur est limite ou s'il sature?? je suis sur un serveur dedie.


Il faudra le faire manuellement, c'est le plus simple, quand a ton serveur qui sature, je suppose que tu auras un message d'erreur si c'est le cas ou que le mail ne sera pas envoyé.

n°1721683
redah75
Posté le 22-04-2008 à 12:34:14  profilanswer
 

OK, merci, je v voir ce que je peux faire ;)

n°1721688
wrksx
Posté le 22-04-2008 à 12:44:56  profilanswer
 

je ne pense pas que ce soit 'ton' serveur qui risque de saturer mais plutôt le smtp que tu utilise.. d'ailleur chez ovh c'est particulier, ils s'occupent eux meme de l'etalement dans le temp de tes envois.
 
http://forum.ovh.com/showthread.php?t=31770
 
http://www.phpcs.com/infomsg_FONCT [...] 08157.aspx


Message édité par wrksx le 22-04-2008 à 12:48:49
n°1721738
redah75
Posté le 22-04-2008 à 13:56:42  profilanswer
 

ah ca c une bonne nouvelle qu'OVH temporise les envois :)
mais le probleme est que j'utilise pas la classe SMTP :( c'est pas grave?

n°1721790
masterpsx
Aigloun foutougrafe
Posté le 22-04-2008 à 14:15:31  profilanswer
 

Je pense que wrksx ne parle pas du smtp que tu configures avec phpmailer mais de celui utilisé par ton serveur dédié pour envoyer les mails.
 
Si tu est chez ovh, tu n'as pas a te soucier du nombre de mail apparement, c'est eux-même qui temporise les envois.

n°1721844
redah75
Posté le 22-04-2008 à 14:35:23  profilanswer
 

ok cool :), merci ;)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Mailing : fonction mail() ou autre ??

 

Sujets relatifs
Fonction aide.Utiliser une fonction du shell dans un programme C
Envoyer worksheet par mail ? OK ! Reste pdf & Save ...[PHP] pbm fonction "public static"
modification d'une fonction php de listingvariable path et pointage fonction
Eval() ? Ou solution pour dériver une fonction en symbolique ?variable path et pointage fonction
récupérer le retour d'une fonction unixSelectionner une plage de cellule en fonction d'une autre cellule
Plus de sujets relatifs à : Mailing : fonction mail() ou autre ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR