J'ai un problème d'envoie massif de mails !!!

Résolu
cs_fabiano13 Messages postés 262 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 27 février 2012 - 27 mars 2007 à 19:40
cs_fabiano13 Messages postés 262 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 27 février 2012 - 28 mars 2007 à 15:02
Pour alléger l'envoie massif d'email personnalisé je procède en 2 étapes :

1) En même temps que je trie ma base de donnée contacts je créé des fiches de mails personnalisés dans une autre table "MailsPersonnalisés" avec un "sujet + body + mail". Ca marche très bien !  

2) En même temps que je récupère toutes ces fiches avec une boucle j'envoie le mail avec ASPEmail en différé.
Le différé n'est pas le problème c'est cette boucle qui est longue, alors ça plante.

Je crois qu'en faisant une pause dans la boucle ça pourrait résoudre mon problème. Seulement je n'en suis pas sûr !

Donc la question est de savoir, comment faire cette pause dans une requete SQL avec ACCESS ?

Sinon si vous avez une autre solution je suis preneur !

D'avance merci.
Fabiano13

5 réponses

cs_fabiano13 Messages postés 262 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 27 février 2012
28 mars 2007 à 15:02
Merci pour ton aide,


Voici ce que j'ai fait pour faire une pause dans une boucle.


<%


Server.ScriptTimeout = 120
Response.Buffer = True


Function Pause(sPause)
    sDepart = Timer()
    sFin = sDepart + sPause
    Do While sDepart < sFin
     If sPause = Int(sFin) - Int(sDepart) Then
     Response.Flush()
     sPause = sPause - 1
     End if
     sDepart = Timer()
    Loop
End Function


'exemple avec une boucle sans fin


x = 1
Do While True
Response.Write x & "
"
x = x + 1
Call Pause(3)
Loop


%>
3
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
27 mars 2007 à 20:57
Salut,

Il se peux que ta boucle pour envoyer les emails soit trop longue à executer (timeout de l'exécution  la page)...

As-tu un message d'erreur ?

yopyop
0
cs_fabiano13 Messages postés 262 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 27 février 2012
27 mars 2007 à 21:11
Non je n'est pas de message d'erreur ! Ca plante tout cour !

Tu as raison que la boucle est longue a traiter.

Mais alors comment ils font les sociétés qui proposent de faire du emailing via asp ?

Il y a un site sur une requete SQL mais je ne sais pas si elle marche sur ACCESS

http://classicasp.aspfaq.com/general/how-do-i-make-my-asp-page-pause-or-sleep.html

Merci pour ton aide.
Fabiano13
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
28 mars 2007 à 11:23
re,

En fait le mailing ne se fait pas via ASP... en tout cas la société pour laquelle je travaille ne fais pas comme cela.
2 possibilités (simples):
1/
Soit lorsque les gens s'inscrivent, il sont automatiquement intégrés dans une liste de distribution (une vraie) et lorsque tu envoies un email, Exchange se charge du reste (pas de personalistation de l'email envoyé).

2/
Tu mets un flag dans ta base qui indique qu'il y a un email à envoyer et un batch tourne tourne en background.
Le batch va checker le flag, voir qu'il y a un email à envoyer et envoyer les emails.

Attention, le batch ne doit pas tout envoyer d'un coup sinon il y a un risque de surcharge (un petit timer entre chaque email envoyé).

Combien d'emails dois-tu envoyer ?

En ce qui concerne le lien que tu as mis, il ne va pas résoudre ton problème.
Les pages ASP ont une limitation de temps d'éxécution... tu peux également chercher de ce côté là, mais pour ton cas, la solution du batch me semble la plus adaptée.

yopyop
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
28 mars 2007 à 11:34
http://www.w3schools.com/asp/prop_scripttimeout.asp



essayes de modifer cettte variable pour que ton script soit executable disons durant une heure...

par défaut c'est 90 secondes

Server.ScriptTimeout=90

essaye

Server.ScriptTimeout=3600

yopyop
0
Rejoignez-nous