| |
Savez-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.
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
KOogar WRInaute accro

Inscrit le: 16 Nov 2004 Messages: 2986 Localisation: Bangalore +4h30
|
Posté 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 ? |
|
| |
|
 |
ludoanimation WRInaute passionné

Inscrit le: 25 Juil 2003 Messages: 512 Localisation: l'Hay les roses 94
|
Posté 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 |
|
| |
|
 |
e-kiwi Modérateur

Inscrit le: 23 Déc 2003 Messages: 12569 Localisation: Toulouse
|
Posté 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  |
|
| |
|
 |
yann214 WRInaute impliqué

Inscrit le: 17 Nov 2005 Messages: 352
|
Posté 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. |
|
| |
|
 |
bixi WRInaute discret

Inscrit le: 19 Sep 2007 Messages: 70
|
Posté 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 |
|
| |
|
 |
KOogar WRInaute accro

Inscrit le: 16 Nov 2004 Messages: 2986 Localisation: Bangalore +4h30
|
Posté 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
| 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  |
|
| |
|
 |
bixi WRInaute discret

Inscrit le: 19 Sep 2007 Messages: 70
|
Posté 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 |
|
| |
|
 |
KOogar WRInaute accro

Inscrit le: 16 Nov 2004 Messages: 2986 Localisation: Bangalore +4h30
|
Posté 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
| 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)");
?>
4°
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. |
|
| |
|
 |
bixi WRInaute discret

Inscrit le: 19 Sep 2007 Messages: 70
|
Posté 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 ? |
|
| |
|
 |
titi63 Nouveau WRInaute
Inscrit le: 30 Jan 2005 Messages: 39 Localisation: 63 - Issoire
|
Posté 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??? |
|
| |
|
 |
KOogar WRInaute accro

Inscrit le: 16 Nov 2004 Messages: 2986 Localisation: Bangalore +4h30
|
Posté 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. |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
|
|