Fonction mails de masse

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fonction mails de masse

par lem » 14 mai 2007, 10:10

Mais si tu as beaucoup de mails à envoyer (ce qui est certainement le cas puisque tu cherches à optimiser la charge et tu ne le ferais probablement pas pour envoyer 3 pauvres mails), tu passeras nécessairement le time out des 30 sec.
Tu es sûr que tu veux quand même savoir comment faire ce script sachant qu'il ne fonctionnera pas ???

par cicom » 13 mai 2007, 21:25

Re,
Oué je sais pourquoi il envoit par paquets, mais moi je ne cherche pas à faire en sorte que l'éxécution passe sous la barre des 30s mais qu'elle charge oins le server et qu'elle soit plus rapide. D'où le besoin d'utiliser une seule fonction mail si possible...
Merci!

par dunbar » 13 mai 2007, 21:16

Salut,
Merci pour ce sujet j'y ai jeté un oueil attentif, là dessus ils envoient les mails par paquets , mais ce que je veux faire c'est tout envoyer d'un coup avec une seule fonction mail, pour diminuer la charge que prend ce script à chaque éxécution. L'autre impératif est que chaque personne qui reçoit le mail ne doit pas voir les adresses des autres.
Voila est-ce possible et comment faire?
Merci à tous!
Il envoie par paquet pour passer outre le securité de php qui stop les scripts au bout de 30 secondes ou selon :!:

par cicom » 13 mai 2007, 21:09

Salut,
Merci pour ce sujet j'y ai jeté un oueil attentif, là dessus ils envoient les mails par paquets , mais ce que je veux faire c'est tout envoyer d'un coup avec une seule fonction mail, pour diminuer la charge que prend ce script à chaque éxécution. L'autre impératif est que chaque personne qui reçoit le mail ne doit pas voir les adresses des autres.
Voila est-ce possible et comment faire?
Merci à tous!

par dunbar » 13 mai 2007, 20:42

par cicom » 13 mai 2007, 14:12

Bonjour,
Je n'ai pas étudié les en têtes messages mail, (je n'ai encore que 17 ans et j'apprends ce dont j'ai besoin au fur et à mesure...) donc si quelqu'un avait un tuto la dessus ou si on pouvait me former rapidement là dessus ce serait fort simpatique!
Merci à tous!

par @rthur » 13 mai 2007, 13:33

Bonjour,

Une solution est que tu mettes les adresses de tes destinataires en Copie Conforme Invisible (BCC en anglais).
ça se fait très simplement en ajoutant les entêtes à ton mail:
http://fr.php.net/manual/fr/function.mail.php

Fonction mails de masse

par cicom » 13 mai 2007, 10:08

Bonjour à tous,
Un de mes sites ayant grandi, j'ai quelques soucis d'optimisation.
Pour les mails de newsletter ou de rappel je dois envoyer un mail à chacun de mes membres qui est le même.
Je me demandais si on ne pouvait pas remplacer la boucle et la fonction mail par une autre fonction ou je rentrerai un array d'adresse mail ou une liste, le mail, les en-têtes et le sujet.

L'actuel script qui met entre 20 et 30 secondes à s'exécuter dans le meilleur des cas et qui me sature le server durant l'envoit :
$headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
        $headers .= 'From: [email protected]' . "\r\n";
        $sujet = 'Mail d\'info de Get Surf! - Vous n\'avez plus de points';
        $message  = 'Bonjour,<br />';
        $message .= 'Vous n\'avez plus de points sur <a href="http://www.get-surf.com">www.get-surf.com</a>, surfez un coup ou alors parrainnez des membres ou faites tourner vos scripts pour vos sites pour regagner des points.<br />';
        $message .= 'Merci.<br />';
        $message .= 'A+ et bon surf!!!!<br /><br /><br /><br />';
        $message .= 'Conformément à la loi vous pouvez vous désinscrire, il suffit de vous connecter puis Infos membres =>Supprimer son compte et là suivez la procédure';
        $sql1 = mysql_query("SELECT mail FROM users WHERE points < '1' AND pause = 'n' AND infos = 'y'");
        $i = mysql_num_rows($sql1);
        while($sql2 = mysql_fetch_array($sql1, MYSQL_ASSOC))
        {
         mail($sql2['mail'], $sujet, $message, $headers);
        }
        echo $i .' messages envoyés <a href="admin.php">retour</a>';

Merci à tous de votre intention et de votre aide!