Ir para conteúdo

POWERED BY:

Arquivado

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

Ewerton93

[Resolvido] loop de emails cadastrado no bd

Recommended Posts

ASP
Dim EnviarMail,MsgBody

'aqui envia o email

Set EnviarMail = Server.CreateObject("CDONTS.NewMail")

 

if Request.Form("opc") = "I" then

 

sql = "select * from tabela,tabela2 where tabela.id = tabela2.ids and ids='" & Request.Form("se1") & "' order by campoemail"

set pro = Database.Execute(sql)

 

z = 0

if z = 0 then

do while not pro.eof

 

sql = "select * from tabela,tabela2 where tabela.id = tabela2.ids and ids='" & Request.Form("se1") & "' order by campoemail"

set pro = Database.Execute(sql)

 

codsetor = pro("campo")

setor = pro("campo2")

email = pro("campoemail")

 

EnviarMail.To = ""& email &""

'EnviarMail.cc = ""

EnviarMail.From =  ""& nome &""

EnviarMail.Subject = "" & Request.Form("ass")&""

MsgBody = "<html>" _

              & "<head>" _

              & "</head>" _

              & "<body bgcolor=""#FFFFFF"">" _

              & "<p align=""left""><font face=""Verdana, Arial, Helvetica, sans-serif"" size=""2"">Olá meu Nome é: <b>" & nome & "</b>,<br> Meu Email e :<b>" & email & "</b>,<br>Telefone: <b>" & tel & "</b><br> Mensagem: <b><br>" & texto & "</b><br> Agradeço desde de já:<br>Obrigado(a).</font>"_

              & "</body>" _

              & "</html>"

EnviarMail.Body = MsgBody

   EnviarMail.Importance = 2

         EnviarMail.BodyFormat = 0

           EnviarMail.MailFormat = 0

              EnviarMail.Send

           Set EnviarMail = Nothing 'aqui é o fim do email

response.write("<script language='javascript'>alert('O E-mail foi enviado com sucesso!');</script>")

 

pro.MoveNext()

 loop

a = a + 1

 end if

end if

%>

 

não funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

não funciona fica vago...qual erro? está realmente entrando no while?

 

desculpa

 

o erro e no while e quando ele vai efetuar o segundo envio pois ele não encontra o outro email.

Compartilhar este post


Link para o post
Compartilhar em outros sites

utilize uma função para validar se o valor que está indo para o email de destino é valido, se for então envia, se não for passa para o proximo. Pesquise pelo forum por essa função, se não me engano eu postei no laboratorio de scripts

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se bem observei você está setando o recordset "pro" duas vezes. Pra q?

 

Já tentou manter apenas o que está fora do loop, ou pelo menos mudar o recordset?

 

Em tempo, se o caso for encontrar algum registro onde o campo "campoemail" esteja vazio, basta eliminá-los na consulta tipo (não testado):

 

ASP
sql = "select * from tabela,tabela2 where tabela.id = tabela2.ids and ids='" & Request.Form("se1") & "' and campoemail <> '' and campoemail is not null order by campoemail"

set pro = Database.Execute(sql)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se bem observei você está setando o recordset "pro" duas vezes. Pra q?

 

Já tentou manter apenas o que está fora do loop, ou pelo menos mudar o recordset?

 

Em tempo, se o caso for encontrar algum registro onde o campo "campoemail" esteja vazio, basta eliminá-los na consulta tipo (não testado):

 

<!--asp--><div class='highlight_syntax_top'>ASP</div><div class='highlight_syntax_main'><!--asp1--><div class="asp">sql = "select * from tabela,tabela2 where tabela.id = tabela2.ids and ids='" & Request.Form("se1") & "' and campoemail <> '' and campoemail is not null order by campoemail"

set pro = Database.Execute(sql)

</div><!--asp2--></div><!--asp3-->

ola pessoal olha que inacreditavel fiz um response.write imprimindo a variavel st e ela imprimi o primeiro email e manda o email, dai ela passa para o segundo email ela imprime mas num manda o segundo email pois e necessario objeto.

acho que to meio loco aqui. rsrsrrss

ver ser podem me ajudar

 

segue codigo

 

<%
if opc = "I" then

sql = "select * from temailempresa,tsetor where temailempresa.setores = tsetor.codsetor and codsetor=" & se1
set pro = Database.Execute(sql)

do while not pro.eof

cc = "email@gmail.com"
cn = "" & nome & ""
st = pro("email")
response.Write(st)

EnviarMail.To = st
EnviarMail.cc = cc
EnviarMail.From =  cn
EnviarMail.Subject = "" & Request.Form("ass") & ""

MsgBody = "<html>" _
		  & "<head>" _
		  & "</head>" _
		  & "<body bgcolor=""#FFFFFF"">" _
		  & "<p align=""left""><font face=""Verdana, Arial, Helvetica, sans-serif"" size=""2"">Olá meu Nome é: <b>" & nome & "</b>,<br> Meu Email e :<b>" & email & "</b>,<br>Telefone: <b>" & tel & "</b><br> Mensagem: <b><br>" & texto & "</b><br> Agradeço desde de já:<br>Obrigado(a).</font>"_
		  & "</body>" _
		  & "</html>"
EnviarMail.Body = MsgBody

EnviarMail.Importance = 2
EnviarMail.BodyFormat = 0
EnviarMail.MailFormat = 0
EnviarMail.Send
Set EnviarMail = Nothing 'aqui é o fim do email

'response.write("<script language='javascript'>verif();<//script>")

'else
'response.write("<script language='javascript'>alert('O E-mail foi enviado com sucesso!');<\/script>")
'end if

pro.MoveNext()
loop
a = a + 1

end if
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você destroi o objeto EnviaEmail dentro do While.. e não o cria novamente.....

 

OU você coloca a criação dentro do while.. ou tira a "destruição" de dentro dele..

 

Abraços....

Compartilhar este post


Link para o post
Compartilhar em outros sites

você destroi o objeto EnviaEmail dentro do While.. e não o cria novamente.....

 

OU você coloca a criação dentro do while.. ou tira a "destruição" de dentro dele..

 

Abraços....

 

flw funcionou aki problema resolvido

 

obrigado

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.