Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ericdbx

[Resolvido] Envio de mailing(muitos e-mails)

Recommended Posts

Galera to com um problema serio.

 

Tem um sistema aki que envia um mailing pra 6900 pessoas usando o componente jmail.

coloquei um timeout no iis de 15000 segundos pra ver se ia mas acabou dando timeout com 2300

 

Queria saber se existe alguma alternativa pra fazer este envio sem dar timeout.

 

Tipo enviar aos poucos de 1000 em 1000.

 

Os e-mails estao cadastrados em um SQL SERVER 2000

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça uma listagem dos emails com paginação de 100 registros por página.

coloque o código dentro do loop e o recordset no email de destino, depois faça um redirect para ir para a outra página.

 

qualquer duvida posta ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu galera consegui resolver.

 

eu e outro programador já estavamos pensando nessa solução.

 

se alguem tiver afim de ver como ficou eu posto!!!

 

ateh mais!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

if request("enviar") = "sim" Then

if request("para") <> "" Then

teste_1 = " top 1 "

else

teste_1 = " TOP 50 "

End if

 

Set rs_usuarias = acessabd "select "& teste_1 &" id_usuaria, email from USUARIAS where ic_ativo = 1 order by id_usuaria"

 

While not rs_usuarias.Eof

Count = Count + 1

idUsuaria = rs_usuarias("id_usuaria")

if request("para") <> "" Then

para = request("para")

Else

para = rs_usuarias("email")

End if

response.flush

nome_usuaria = rs_usuarias("usuaria")

if instr(nome_usuaria, " ") > 0 Then

nm = split(nome_usuaria, " ")

nome_usuaria = nm(0)

end if

msg_agora = ""

msg_agora = replace(mensagem_base, "%%nome_usuaria%%", nome_usuaria)

msg_agora = replace(msg_agora, "%%id_usuaria%%", idUsuaria)

msg_agora = replace(msg_agora, "%%mensagem%%", rs_msgs("texto"))

msg_agora = replace(msg_agora, "%%titulo%%", rs_msgs("titulo"))

Set lg = acessabd("insert into USUARIAS_MENSAGENS_ENVIO (id_usuaria, id_mensagem, dt_envio, dt_visualizacao, ic_visualizou) values ("& idUsuaria &", "& rs_msgs("id_mensagem") &", getdate(), null, 0)")

Set lg = nothing

Set lg = acessabd("select max(id_envio) as id_envio from USUARIAS_MENSAGENS_ENVIO where id_usuaria = "& idUsuaria &" and id_mensagem = "& rs_msgs("id_mensagem"))

if not lg.eof Then

msg_agora = replace(msg_agora, "</map>", "</map><img src=""http://www.minhapilula.com.br/envio_mensagens.asp?acao=log&id_envio="& lg("id_envio") &""" width=""0"" height=""0"" border=""0"">")

End if

lg.close

Set lg = Nothing

Call MandaMail(para,msg_agora)

 

Dim dias

dias = rs_usuarias("ic_diasenvio")

'msg_confirma = msg_confirma & "<tr><td width=5>"& num_msg + 1 &"</td><td>"& rs_usuarias("USUARIAS.nm_usuaria") &"</td><td>"& rs_usuarias("ds_email") &"</td><td>"& dias &"</td><td>"& now() &"</td></tr>"

response.write Count &"("& idUsuaria &") - Enviado: "& nome_usuaria &"- "& rs_usuarias("ds_email") &"<br>"

 

' Controle de dias

if teste_1 = "" Then

Set rs_upd = acessabd("update USUARIAS SET ic_diasenvio = 0 where USUARIAS.ic_diasenvio = 28 and IC_ATIVO = 1 and id_usuaria] = "&idUsuaria&"")

Set rs_upd = Nothing

 

Set rs_upd = acessabd("update USUARIAS SET ic_diasenvio = ic_diasenvio + 1 where ic_diasenvio > 0 and IC_ATIVO = 1 and id_usuaria = "&idUsuaria&"")

Set rs_upd = Nothing

End if

' Fim do controle de dias

 

num_msg = num_msg + 1

rs_usuarias.Movenext()

Wend

 

 

rs_usuarias.Close()

Set rs_usuarias = Nothing

 

response.write "<script language='javascript'>location.href='teste.asp?enviar=sim&id_usuaria="& idUsuaria &"';</script>"

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi mal sou novo em forums

 

entao eu postei o codigo mas ele tah bem confuso.

 

vou explicar

 

o codigo roda assim

 

se for pra enviar a todos ele pega os 50 primeiros registros na tabela que querem o mailing

 

vai chamar a função mandamail

 

as outras coisas q eu coloquei é por que tem uma pausa pra quem completa 21 dias recebendo o e-mail

 

vai pro novo regitro

 

fim dos 50 primeiros

 

um javascript pega o valor da ultima id de usuariao e envia por querystring para a mesma pagina

para que o processo continue da ultima pra frente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara me fudi legal com esse script!!!!

enviou 400 vezes pros 50 primeiros

 

tudo por causa desta linha q eu eskeci de tira

 

While not rs_usuarias.Eof and idUsuaria <100

q m***** quase fudi a empresa e sou programado novo aki!!!

jah editei o outro post

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.