Jump to content


Photo

Mais Rapidez Para O Bd


  • Faça o login para participar
36 replies to this topic

#16 |KILLING|

|KILLING|

    12 Horas

  • Usuários
  • 174 posts
  • Sexo:Não informado

Posted 16/10/2004, 23:42

O QUE EU FARIA:
Bem ue nunca tinha parado para pensar nisso, mas é muito sério!
Faça uma página da seguinte forma:

<!--#include file = "config.asp"-->
<%
assunto = request("assunto")
mensagem = request("mensagem")
MrCfg = 0
strSession = session("CfgMailSended")
strCfgSess = (strSession * 30) + 30 '30 eh a quantidade de emails mandado por cada 5 minutos
if strSession = "" then strSession = 0 else strSession = strSession * 30
if assunto <> "" AND mensagem <> "" then response.Write("<meta http-equiv='refresh' content='300' >") ' de 300 em 300 segundos a pg será atualizada

Set objmail = Server.CreateObject("CDONTS.NewMail")
Set Conex = Server.CreateObject ("ADODB.Connection")
Conex.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("../database/dados.mdb")
Set RS = Server.CreateObject("ADODB.Recordset")
Set RSX = Server.CreateObject("ADODB.Recordset")

SQL = "SELECT * FROM usuarios LIMIT " & strSession & "," & strCfgSess
RS.open SQL, conex, 1,1

Do while not RS.eof
If MrCfg = 30 then
if session("CfgMailSended") = "" then session("CfgMailSended") = 1 else session("CfgMailSended") = session("CfgMailSended") + 1
response.End()
End if

SQL = "SELECT * FROM usuarios WHERE id =" & RS("id")
RSX.open SQL, conex, 1,1

 objmail.from = RSX_admin & "<" & email_admin & ">"
 objmail.to = RSX("email")
 objmail.subject = assunto
 objmail.body = "Olá <b>" & RSX("RSX") & "</b><br><br>&nbsp;&nbsp;&nbsp;&nbsp;" & mensagem
 objMail.Bodyformat = 0
 objMail.MailFormat = 0
 objmail.send

MrCfg = MrCfg + 1
RS.movenext
Loop

response.Write("Os e-mails foram enviados com sucesso.")

Set objmail = nothing
Conex.close
Set Conex = nothing
rs.close
Set RS = nothing
rsx.close
Set RSX = nothing
%>

pô nem deu para testar neh, mas vê aí se funciona, colocquei o codigo um pouco mais rápido, e coloquei para enviar de 5 em 5 minutos apenas 30 e-mails, mas vc pode mudar isso de acordo com o código, mas acho que está bom, pois a página faz tudo sozinha, é só você enviar a msg de news que e deixar o navegador aberto por um tempo bom (heheh) que a página vai enviando, de 5 em 5 minutos naum poderá dar erros nem travar o server, pois eh soh 30 emails neh ....
ABRAÇOS

#17 leanjo

leanjo

    Doutor

  • Usuários
  • 912 posts
  • Sexo:Não informado
  • Interesses:...

Posted 17/10/2004, 02:52

blz
mas no caso de varios emails cadastrados...
se o site der um "bum" e quando vc precisar mandar a news tenha 2 mil ou mais emails, como seria?
dessa forma tb funcionaria?

aproveitando esse topico...
como mandar a news com por exemplo " Bom dia 'fulano de tal' " como por o nome da pessoa no email?

valeu

#18 Matrix2003

Matrix2003

    24 Horas

  • Banidos
  • PipPipPipPipPip
  • 414 posts
  • Sexo:Não informado
  • Localidade:Bauru/SP
  • Interesses:ASP SOMENTE ASP

Posted 17/10/2004, 08:27

é pelo jeito esta dificil fazer isto mais foi bom saber que a maioria esta com este problema.
olha o erro killing que deu só colar o codigo sem tirar e sem colocar nada

Microsoft JET Database Engine error '80040e14'

Syntax error in FROM clause.

/renovada/email/admin/enviar_email.asp, line 17
Pessoal espero ajudar sempre que possivél todos vocês, não se esqueça do nosso site www.onemasters.com agora com muito mais atualidades todos os dias..
Projetos e muito mais....Valeu
Ricardo Zanelati

#19 |KILLING|

|KILLING|

    12 Horas

  • Usuários
  • 174 posts
  • Sexo:Não informado

Posted 17/10/2004, 15:10

OLHA ESSE AÍ:

<meta http-equiv="refresh" content="60">
<!--#include file = "config.asp"-->
<%
assunto = request("assunto")
mensagem = request("mensagem")
strTime = now()
MrCfg = 0
SrCfg = 0

Set objmail = Server.CreateObject("CDONTS.NewMail")
Set Conex = Server.CreateObject ("ADODB.Connection")
Conex.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("../database/dados.mdb")
Set RS = Server.CreateObject("ADODB.Recordset")
Set RSX = Server.CreateObject("ADODB.Recordset")

'''''''''''''''''''''
Start = SrCfg * 30  ' 30 eh a quantidade de emails mandado por cada < TEMPO > minutos 
Fim = Start + 30    ' 30 eh a quantidade de emails mandado por cada < TEMPO > minutos
Tempo = 5           ' 5 minutos
'''''''''''''''''''''

If DateDiff("m",NOW, strTime) >= Tempo
Envia
strTime = NOW()
End if

Sub Envia
SQL = "SELECT * FROM usuarios LIMIT " & Start & "," & Fim
RS.open SQL, conex, 1,1

Do while not RS.eof
If MrCfg = 30 then
SrCfg = SrCfg + 1
response.End()
End if

SQL = "SELECT * FROM usuarios WHERE id =" & RS("id")
RSX.open SQL, conex, 1,1

objmail.from = RSX_admin & "<" & email_admin & ">"
objmail.to = RSX("email")
objmail.subject = assunto
objmail.body = "Olá <b>" & RSX("RSX") & "</b><br><br>&nbsp;&nbsp;&nbsp;&nbsp;" & mensagem
objMail.Bodyformat = 0
objMail.MailFormat = 0
objmail.send

If Err <> 0 Then
response.Write("Ocorreu o erro de núumero " & Err.number & ". Descrição: " & Err.Description)
response.End()
End if

MrCfg = MrCfg + 1
RS.movenext
Loop

response.Write("Os e-mails foram enviados com sucesso.")
End Sub

Set objmail = nothing
Conex.close
Set Conex = nothing
rs.close
Set RS = nothing
rsx.close
Set RSX = nothing
%>

Edição feita por: |KILLING|, 17/10/2004, 15:20.


#20 Matrix2003

Matrix2003

    24 Horas

  • Banidos
  • PipPipPipPipPip
  • 414 posts
  • Sexo:Não informado
  • Localidade:Bauru/SP
  • Interesses:ASP SOMENTE ASP

Posted 17/10/2004, 15:23

agora deu este pau

ADODB.Recordset error '800a0e78'

Operation is not allowed when the object is closed.

/email/admin/enviar_email.asp, line 62

Edição feita por: Matrix2003, 17/10/2004, 15:28.

Pessoal espero ajudar sempre que possivél todos vocês, não se esqueça do nosso site www.onemasters.com agora com muito mais atualidades todos os dias..
Projetos e muito mais....Valeu
Ricardo Zanelati

#21 |KILLING|

|KILLING|

    12 Horas

  • Usuários
  • 174 posts
  • Sexo:Não informado

Posted 17/10/2004, 15:27

Agora o erro diz claramente:
vc mudou de lugar o bd? ou o nome do bd no codigo ta errado?

#22 |KILLING|

|KILLING|

    12 Horas

  • Usuários
  • 174 posts
  • Sexo:Não informado

Posted 17/10/2004, 15:33

Tenta tirar as últimas linhas de .close, e = nothing:

Set objmail = nothing
Conex.close
Set Conex = nothing
rs.close
Set RS = nothing
rsx.close
Set RSX = nothing

deleta isso..
depois agente ve isso!

#23 Matrix2003

Matrix2003

    24 Horas

  • Banidos
  • PipPipPipPipPip
  • 414 posts
  • Sexo:Não informado
  • Localidade:Bauru/SP
  • Interesses:ASP SOMENTE ASP

Posted 17/10/2004, 15:39

fiz o que mandou o codigo estas aqui
<!--#include file = "config.asp"-->
<%
assunto = request("assunto")
mensagem = request("mensagem")
strTime = now()
MrCfg = 0
SrCfg = 0

Set objmail = Server.CreateObject("CDONTS.NewMail")
Set Conex = Server.CreateObject ("ADODB.Connection")
Conex.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("../database/dados.mdb")
Set RS = Server.CreateObject("ADODB.Recordset")
Set RSX = Server.CreateObject("ADODB.Recordset")

'''''''''''''''''''''
Start = SrCfg * 30  ' 30 eh a quantidade de emails mandado por cada < TEMPO > minutos 
Fim = Start + 30    ' 30 eh a quantidade de emails mandado por cada < TEMPO > minutos
Tempo = 5           ' 5 minutos
'''''''''''''''''''''

Do While DateDiff("m",NOW, strTime) >= Tempo
Envia
strTime = NOW()
Loop

Sub Envia
SQL = "SELECT * FROM usuarios LIMIT " & Start & "," & Fim
RS.open SQL, conex, 1,1

Do while not RS.eof
If MrCfg = 30 then
SrCfg = SrCfg + 1
response.End()
End if

SQL = "SELECT * FROM usuarios WHERE id =" & RS("id")
RSX.open SQL, conex, 1,1

objmail.from = RSX_admin & "<" & email_admin & ">"
objmail.to = RSX("email")
objmail.subject = assunto
objmail.body = "Olá <b>" & RSX("RSX") & "</b><br><br>&nbsp;&nbsp;&nbsp;&nbsp;" & mensagem
objMail.Bodyformat = 0
objMail.MailFormat = 0
objmail.send

If Err <> 0 Then
response.Write("Ocorreu o erro de núumero " & Err.number & ". Descrição: " & Err.Description)
response.End()
End if

MrCfg = MrCfg + 1
RS.movenext
Loop

response.Write("Os e-mails foram enviados com sucesso.")
End Sub
%>

acontece que não mandou os emails e não apareceu
Os e-mails foram enviados com sucesso
Pessoal espero ajudar sempre que possivél todos vocês, não se esqueça do nosso site www.onemasters.com agora com muito mais atualidades todos os dias..
Projetos e muito mais....Valeu
Ricardo Zanelati

#24 |KILLING|

|KILLING|

    12 Horas

  • Usuários
  • 174 posts
  • Sexo:Não informado

Posted 17/10/2004, 15:53

LAH VAMOS NOS HEHEH

<meta http-equiv="refresh" content="60">
<!--#include file = "config.asp"-->
<%
If Session("TIME") = "" then session("TIME") = Now()

assunto = request("assunto")
mensagem = request("mensagem")
strTime = session("TIME")
MrCfg = 0
SrCfg = 0

Set objmail = Server.CreateObject("CDONTS.NewMail")
Set Conex = Server.CreateObject ("ADODB.Connection")
Conex.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("../database/dados.mdb")
Set RS = Server.CreateObject("ADODB.Recordset")
Set RSX = Server.CreateObject("ADODB.Recordset")

'''''''''''''''''''''
Start = SrCfg * 30  ' 30 eh a quantidade de emails mandado por cada < TEMPO > minutos 
Fim = Start + 30    ' 30 eh a quantidade de emails mandado por cada < TEMPO > minutos
Tempo = 5           ' 5 minutos
'''''''''''''''''''''

Do While DateDiff("m",NOW, strTime) >= Tempo
Envia
session("TIME") = NOW()
Loop

Sub Envia
SQL = "SELECT * FROM usuarios LIMIT " & Start & "," & Fim
RS.open SQL, conex, 1,1

Do while not RS.eof
If MrCfg = 30 then
SrCfg = SrCfg + 1
response.End()
End if

SQL = "SELECT * FROM usuarios WHERE id =" & RS("id")
RSX.open SQL, conex, 1,1

objmail.from = RSX_admin & "<" & email_admin & ">"
objmail.to = RSX("email")
objmail.subject = assunto
objmail.body = "Olá <b>" & RSX("RSX") & "</b><br><br>&nbsp;&nbsp;&nbsp;&nbsp;" & mensagem
objMail.Bodyformat = 0
objMail.MailFormat = 0
objmail.send

If Err <> 0 Then
response.Write("Ocorreu o erro de núumero " & Err.number & ". Descrição: " & Err.Description)
response.End()
End if

MrCfg = MrCfg + 1
RS.movenext
Loop

response.Write("Os e-mails foram enviados com sucesso.")
End Sub

Set objmail = nothing
Conex.close
Set Conex = nothing
rs.close
Set RS = nothing
rsx.close
Set RSX = nothing
%>

se der erros nas ultimas linhas dos closes e nothing's tira elas como antes OK?

#25 Matrix2003

Matrix2003

    24 Horas

  • Banidos
  • PipPipPipPipPip
  • 414 posts
  • Sexo:Não informado
  • Localidade:Bauru/SP
  • Interesses:ASP SOMENTE ASP

Posted 17/10/2004, 16:03

não deu erro somente tive que tirar as ultimas linhas e não enviou os emails cara a maioria das pessoas com sites grandes tem este problema lentidão no enviou do s emails
Pessoal espero ajudar sempre que possivél todos vocês, não se esqueça do nosso site www.onemasters.com agora com muito mais atualidades todos os dias..
Projetos e muito mais....Valeu
Ricardo Zanelati

#26 |KILLING|

|KILLING|

    12 Horas

  • Usuários
  • 174 posts
  • Sexo:Não informado

Posted 17/10/2004, 16:09

Faz o seguinte:
qual o resultado mostrado na tela?

<%

Set Conex = Server.CreateObject ("ADODB.Connection")
Conex.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("../database/dados.mdb")
Set RS = Server.CreateObject("ADODB.Recordset")

SQL = "SELECT * FROM usuarios LIMIT " & Start & "," & Fim
RS.open SQL, conex, 1,1

do while not rs.eof
response.write(rs("email"))
rs.movenext
loop
%>

Edição feita por: |KILLING|, 17/10/2004, 16:10.


#27 Matrix2003

Matrix2003

    24 Horas

  • Banidos
  • PipPipPipPipPip
  • 414 posts
  • Sexo:Não informado
  • Localidade:Bauru/SP
  • Interesses:ASP SOMENTE ASP

Posted 17/10/2004, 16:13

Microsoft JET Database Engine error '80040e14'

Syntax error in FROM clause.

/email/admin/enviar_email.asp, line 10
Pessoal espero ajudar sempre que possivél todos vocês, não se esqueça do nosso site www.onemasters.com agora com muito mais atualidades todos os dias..
Projetos e muito mais....Valeu
Ricardo Zanelati

#28 |KILLING|

|KILLING|

    12 Horas

  • Usuários
  • 174 posts
  • Sexo:Não informado

Posted 17/10/2004, 16:18

OPS foi malz HEHEHE :P

[code=auto:0]
<%
Start = 0
fim = start + 30

Set Conex = Server.CreateObject ("ADODB.Connection")
Conex.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("../database/dados.mdb")
Set RS = Server.CreateObject("ADODB.Recordset")

SQL = "SELECT * FROM usuarios LIMIT " & Start & "," & Fim
RS.open SQL, conex, 1,1

do while not rs.eof
response.write(rs("email"))
rs.movenext
loop
%>

#29 Matrix2003

Matrix2003

    24 Horas

  • Banidos
  • PipPipPipPipPip
  • 414 posts
  • Sexo:Não informado
  • Localidade:Bauru/SP
  • Interesses:ASP SOMENTE ASP

Posted 17/10/2004, 16:24

continua
Microsoft JET Database Engine error '80040e14'

Syntax error in FROM clause.

/email/admin/enviar_email.asp, line 10
Pessoal espero ajudar sempre que possivél todos vocês, não se esqueça do nosso site www.onemasters.com agora com muito mais atualidades todos os dias..
Projetos e muito mais....Valeu
Ricardo Zanelati

#30 |KILLING|

|KILLING|

    12 Horas

  • Usuários
  • 174 posts
  • Sexo:Não informado

Posted 17/10/2004, 16:31

troca isso:

SQL = "SELECT * FROM usuarios LIMIT " & Start & "," & Fim
RS.open SQL, conex, 1,1


por isso:

SQL = "SELECT * FROM usuarios LIMIT 0,30"
RS.open SQL, conex, 1,1




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq