Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

Envoyer une newsletter a partir d'un serveur mutualisé

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
KOogar
WRInaute accro
WRInaute accro

Inscrit le: 16 Nov 2004
Messages: 2986
Localisation: Bangalore +4h30

URL permanente de ce messagePosté le : Ven Fév 08, 2008 13:47    Sujet du message: Envoyer une newsletter a partir d'un serveur mutualisé

Bonjour,

Je dois envoyer 3000 newsletters a partir d'un serveur mutualisé

******** caracteristiques **********
Le poid html du mail est de 35ko
pas droit aux copies cachées
droit aux taches crons
+ 20 enregistrements supplémentaires par jour
******************************

Je pensais faire comment ca:
- 10 scripts qui vont prendre en compte 10% chacun des enregistrements a traiter
- 8 apel par script ( tache crons toute les heures 00.00h -> 07.00h)

Ce qui fait 8*10 = 80 taches

Donc avec 3000 mails :
3000 / 80 = 38 traitements par script

1° je suis parano et je peux envoyer 3000 mails d'un coup avec set_time_limit(0) ?
2° Mon idée est pas si mal et à votre avis, je peux monter jusqu'à combien de traitement par script pour le futur: 100, 200, 500 ?
3° cela ne va t-il pas poser des problèmes de répartir 3000 mails de cette manière pour le serveur mail ? genre spam ? Ou inversement c'est très bien comme méthode ?
 
KOogar Visiter le site web du posteur
ludoanimation
WRInaute passionné
WRInaute passionné

Inscrit le: 25 Juil 2003
Messages: 512
Localisation: l'Hay les roses 94

URL permanente de ce messagePosté le : Ven Fév 08, 2008 16:28    Sujet du message: Envoyer une newsletter a partir d'un serveur mutualisé

Moi sur un site je le fais avec wanewsletter pour 3500 dest sur un 60gp avec mail a chaque destinataire (pas de copies cachées )

faut regler a environ 300 dest par envoi ce qui fait qu'il faut cliquer une bonne dizaine de fois sur envoyer le flot suivant ... mais ca passe impecable
 
ludoanimation Visiter le site web du posteur
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12569
Localisation: Toulouse

URL permanente de ce messagePosté le : Ven Fév 08, 2008 16:34    Sujet du message: Envoyer une newsletter a partir d'un serveur mutualisé

ajaaaax.
chaque minute, le script lance l'envoi à 100 destinataires (1 à 1). tu laisse la fenetre ouverte et l'appli ajax tourner Smile
 
e-kiwi Visiter le site web du posteur
yann214
WRInaute impliqué
WRInaute impliqué

Inscrit le: 17 Nov 2005
Messages: 352

URL permanente de ce messagePosté le : Ven Fév 08, 2008 17:26    Sujet du message: Envoyer une newsletter a partir d'un serveur mutualisé

sinon faut faire un petit script qu'on met en crontab.
 
yann214 Visiter le site web du posteur
bixi
WRInaute discret
WRInaute discret

Inscrit le: 19 Sep 2007
Messages: 70

URL permanente de ce messagePosté le : Ven Fév 08, 2008 17:28    Sujet du message: Envoyer une newsletter a partir d'un serveur mutualisé

yann214 a écrit:
sinon faut faire un petit script qu'on met en crontab.

en mutualisé tu oublie CRON
 
bixi
KOogar
WRInaute accro
WRInaute accro

Inscrit le: 16 Nov 2004
Messages: 2986
Localisation: Bangalore +4h30

URL permanente de ce messagePosté le : Ven Fév 08, 2008 17:43    Sujet du message: Envoyer une newsletter a partir d'un serveur mutualisé

ludoanimation a écrit:
Moi sur un site je le fais avec wanewsletter pour 3500 dest sur un 60gp avec mail a chaque destinataire (pas de copies cachées )

faut regler a environ 300 dest par envoi ce qui fait qu'il faut cliquer une bonne dizaine de fois sur envoyer le flot suivant ... mais ca passe impecable


je suis sur un 90 plan mais je ne pense pas que cela change grand chose. Donc si j'installe mon systeme, je pourrais le monter jusqu'a 300 traitements
ce qui fait -> 300*80 = 24 000 traitements

ca me va, cela me laissse quelques années tranquille devant moi Very Happy

e-kiwi a écrit:
ajaaaax.
chaque minute, le script lance l'envoi à 100 destinataires (1 à 1). tu laisse la fenetre ouverte et l'appli ajax tourner


je préfère passer 10 heures de plus aujourd'hui à developper 1 script que 300 heures dans les mois à venir à regarder une fenetre Internet se reloader, sans compter qu'entre le serveur et ma fenêtre, les bytes ont 7000 bornes à se taper Mr. Green
 
KOogar Visiter le site web du posteur
bixi
WRInaute discret
WRInaute discret

Inscrit le: 19 Sep 2007
Messages: 70

URL permanente de ce messagePosté le : Ven Fév 08, 2008 17:49    Sujet du message: Envoyer une newsletter a partir d'un serveur mutualisé

tu peux par contre créer ton propre script AJAX qui s'occupera de cliquer pour toi sur le bouton SUIVANT :p

En gros tu crée un objet ajax qui lance ton script PHP qui est censé envoyé 100 mail.. sur le Oncomplete, tu relance le meme script en boucle avec a chaque fois des parametre différents (identifiant du client correspondant au premier mail a envoyé et nombre de client suivant)

oublie pas de lancer un EVENT onFinish dans le cas ou tu es arrivé au dernier client sinon le script va se taper une boucle infini :p
 
bixi
KOogar
WRInaute accro
WRInaute accro

Inscrit le: 16 Nov 2004
Messages: 2986
Localisation: Bangalore +4h30

URL permanente de ce messagePosté le : Sam Fév 09, 2008 11:36    Sujet du message: Envoyer une newsletter a partir d'un serveur mutualisé

ca me soule ajax puis j'ai pas mis 10 heures mais 3 heures en partant de zero et je l'ai rendu portable au maximum pour ceux que cela interresse
ce systeme permet d'envoyer environ jusqu'a 30 000 newsletters individualisés, tout dans le meme placard chez l'hebergeur, et un envoi étalée sur 10 heures.
Je suis parti sur une base de 10.
10 scripts * 10 heures.
Cela fait 100 traitememts

De quoi partir en vacances tranquille pendant que php travaille pour nous Wink

Code:
/*
1° creer les 2 tables

CREATE TABLE `newsletter_liste` (
  `id` int(255) NOT NULL auto_increment,
  `email` varchar(150) NOT NULL default '',
  `nom` varchar(255) NOT NULL default '',
  `membre` int(3) NOT NULL default '0',
  `date` date NOT NULL default '0000-00-00',
  `numero` varchar(100) NOT NULL default '0',
  PRIMARY KEY  (`email`),
  KEY `id` (`id`)
) ENGINE=MyISAM;



CREATE TABLE `newsletter_positions_id` (
  `pos` int(11) NOT NULL default '1',
  `ch1` tinyint(3) unsigned NOT NULL default '1',
  `ch2` tinyint(3) unsigned NOT NULL default '1',
  `ch3` tinyint(3) unsigned NOT NULL default '1',
  `ch4` tinyint(3) unsigned NOT NULL default '1',
  `ch5` tinyint(3) unsigned NOT NULL default '1',
  `ch6` tinyint(3) unsigned NOT NULL default '1',
  `ch7` tinyint(3) unsigned NOT NULL default '1',
  `ch8` tinyint(3) unsigned NOT NULL default '1',
  `ch9` tinyint(3) unsigned NOT NULL default '1',
  `ch10` tinyint(3) unsigned NOT NULL default '1'
) ENGINE=MyISAM;


2° mettre a jour la table newsletter_liste la vieille avec un CRON
   c'est ici que vous allez chercher les emails d'une autre table pour les mettre dans cette table
   des problemes pour le faire ? je vous passes mon alog ;)
   j'ai mis 1 drop + create pour etre sur que les ID recommence bien a partir de 0

mysql_query("DROP TABLE newsletter_liste");
mysql_query("CREATE TABLE newsletter_liste (
  id int(255) NOT NULL auto_increment,
  email varchar(150) NOT NULL default ''
  PRIMARY KEY  (email),
  KEY id (id)
) ENGINE=MyISAM;");



3° mettre a jour la table newsletter_positions_id la vieille avec un CRON
   rien de particulier sauf que la table newsletter_positions_id doit abolument etre a jour
   avant de lancer les scripts

<?php
// mise jour de la table newsletter_positions_id
mysql_query("DELETE FROM newsletter_positions_id");
mysql_query("INSERT INTO newsletter_positions_id (pos, ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8, ch9, ch10) VALUES (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)");
?>


placer 10 scripts avec le code.

LA SEULE CHOSE A MODIFIER va etre la variable $position

le script n°1 aura $position = 1;
le script n°2 aura $position = 2;
le script n°3 aura $position = 3;
..
le script n°10 aura $position = 10;


5° aller sur votre planificateur de taches, ajouter chaque script 1 par 1 avec 10 apel par script
0h -> 10h

enjoy ;)


*/

/*******************************************************************************
    * connection sql
    ***************************************************************************/
$connection = mysql_connect("localhost","root","motdepasse");
if ( ! $connection )
die ("connection impossible"); 
$mabasededonnee="Client";
mysql_select_db($mabasededonnee) or die ("pas de connection"); 

$table_sql = "";  // nom de votre table

/*******************************************************************************
    * position, A MODIFIER selon le n° du script
    ***************************************************************************/

$position = 1;  // 1 -> 10

/*******************************************************************************
    * code  NE RIEN MODIFIER A PARTIR DE LA SAUF LA COMMANDE MAIL() bien sur ;)
    ***************************************************************************/

$base = 10;

// nom du champ
$champ_sql_position = "ch$position";
// recherche la derniere position
$q = mysql_query("SELECT ".$champ_sql_position." FROM newsletter_positions_id WHERE pos=1"); // requete
$r = mysql_fetch_array($q);
// la derniere position connu 1 -> 10
$facteur_dernier_id = $r[$champ_sql_position];

// le nombre d'enregistrement
$q1 = mysql_query("SELECT id FROM newsletter_liste"); // requete
$nombre_enregistrements = mysql_num_rows($q1);
// on arrondi a la centaine
$nombre_enregistrements = round($nombre_enregistrements, -2);
// cherche le nombre d'enregistrement a traiter
// donc 10 scripts, cela fait nbre enregistrements / 10

$new_nombre_enregistrements = $nombre_enregistrements / $base;

// combien de traitement a faire a chaque fois ?
// puisque le script est apelé 10, ca sera / 10

$nombre_de_traitements = $new_nombre_enregistrements / $base;

// on va chercher ou pointe le premier id
// on va d'abord regarder ou il commence

$premier_id = $new_nombre_enregistrements * $position;
$supplement = $nombre_de_traitements * $facteur_dernier_id;
$dernier_id =  $premier_id + $supplement;
$dernier_id = $dernier_id - $new_nombre_enregistrements;
$dernier_id = $dernier_id - $nombre_de_traitements;
// Le premier id sera donc $dernier_id

$id = round($dernier_id);
$i = 0;
while ($i < $nombre_de_traitements )
{
   $q2 = mysql_query("SELECT email FROM newsletter_liste WHERE id=$id"); // requete
   $r2 = mysql_fetch_array($q2);
   $e_mail = $r2['email'];


      // envoie de mail personnalisé
      //  mail();

      echo $e_mail;
      echo ' - ';
      echo $id;
      echo '<br />';

   $id++;
   $i++;
 }
// mise a jour de la position
mysql_query("UPDATE newsletter_positions_id SET ".$champ_sql_position."=".$champ_sql_position."+1 WHERE pos=1");
//exit();
?>




Au moment de vos tests, vous devriez en lancant le script avec 10% de 10% des enregistrements de votre base voir apparaitre les enregistrements concernés. en recliquant, vous devriez voir les enregistrements suivant concernés et ainsi de suite.
 
KOogar Visiter le site web du posteur
bixi
WRInaute discret
WRInaute discret

Inscrit le: 19 Sep 2007
Messages: 70

URL permanente de ce messagePosté le : Sam Fév 09, 2008 15:28    Sujet du message: Envoyer une newsletter a partir d'un serveur mutualisé

hum.. tu parle de CRON dans ton script.

tu es donc sur un serveur dédié ?

Si oui tu as la main sur la limite d'execution de script ?

du coup ton script sert a rien ?
 
bixi
titi63
Nouveau WRInaute

Inscrit le: 30 Jan 2005
Messages: 39
Localisation: 63 - Issoire

URL permanente de ce messagePosté le : Sam Fév 09, 2008 15:43    Sujet du message: Envoyer une newsletter a partir d'un serveur mutualisé

ludoanimation a écrit:
faut regler a environ 300 dest par envoi


Ya pas de risques de fermeture du compte pour 300 dest par envoi???
 
titi63 Visiter le site web du posteur
KOogar
WRInaute accro
WRInaute accro

Inscrit le: 16 Nov 2004
Messages: 2986
Localisation: Bangalore +4h30

URL permanente de ce messagePosté le : Sam Fév 09, 2008 20:42    Sujet du message: Envoyer une newsletter a partir d'un serveur mutualisé

bixi a écrit:
hum.. tu parle de CRON dans ton script.

tu es donc sur un serveur dédié ?

Si oui tu as la main sur la limite d'execution de script ?

du coup ton script sert a rien ?


ce systeme est pour du mutualisé

titi63 a écrit:
Ya pas de risques de fermeture du compte pour 300 dest par envoi???


non, ca passe ou ca passe pas, c'est tout.

Tu peux te faire fermer un compte mail si il y a plus de 3 personnes qui porte plainte pour spam sur le même envoi de mail.
 
KOogar Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort