Ir para conteúdo

POWERED BY:

Arquivado

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

Pedro Ferreira

Envio automatico email

Recommended Posts

sobre o caso de enviar quando o banco for atualizado eu ñ conheço mais...

 

Já ouvir falar que o oracle e o SQL SERVER faz isso, mais tenho uma sugestão pra você:

 

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Crie uma página com um refresh automático, pode ser com "meta tags" coloque um espaço de tempo que for conviniente:

 

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Coloque um sql para selecionar os e-mails que você quer enviar e logo após faça a função de envio:

Compartilhar este post


Link para o post
Compartilhar em outros sites

O banco de dados está em access não sabe se também dá?A pagina de refresh automático foi o que fiz desde logo, ou seja tenho uma pagina que apresenta os dados e actualiza de 30 em 30 minutos. O meu problema é mesmo o envio de email apenas e só quando são detectados novos registos." Coloque um sql para selecionar os e-mails que você quer enviar e logo após faça a função de envio:"Não entendi muito bem o que quis dizer... ObrigadoPedro Ferreira

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não pode a cada update ou a cada insert fazer um select dos emails e enviar o que deseja?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelas dicas, eu fiz o seguinte:

 

<%Set adoCon = Server.CreateObject("ADODB.Connection")src = Server.MapPath("db/smsgw.mdb")sConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & srcadoCon.Open  sConnStr%><meta http-equiv="refresh" content="1;URL=teste.asp"><%Dim rsCheckUltDim rsDelUltDim rsCheckEnt, strCheckEnt, strCheckUltDim rsCheckAllSet rsCheckUlt = Server.CreateObject("ADODB.Recordset")strCheckUlt = "SELECT Last(ultima_data) As teste FROM ultima"rsCheckUlt.Open strCheckUlt, adoConSet rsCheckEnt = Server.CreateObject("ADODB.Recordset")strCheckEnt = "SELECT Last(Data) As teste2 FROM Entradas"rsCheckEnt.Open strCheckEnt, adoConif rsCheckUlt("teste") < rsCheckEnt("teste2") thenSet rsCheckAll = Server.CreateObject("ADODB.Recordset")strCheckAll = "SELECT Mensagem, Data, Origem FROM Entradas Where Data > " & rsCheckUlt("teste")rsCheckAll.Open strCheckAll, adoConDo While not rsCheckAll.EOF'cria o objeto para o envio de e-mailSet objCDOSYSMail = Server.CreateObject("CDO.Message")'cria o objeto para configuração do SMTPSet objCDOSYSCon = Server.CreateObject ("CDO.Configuration")'SMTPobjCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtpa.operador.pt"'porta do SMTPobjCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25'porta do CDOobjCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'timeoutobjCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30'AutobjCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'user e passobjCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "user"objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "pass"objCDOSYSCon.Fields.update'atualiza a configuração do CDOSYS para o envio do e-mailSet objCDOSYSMail.Configuration = objCDOSYSCon'e-mail do remetenteobjCDOSYSMail.From = "mail@operador.com"'e-mail do destinatárioobjCDOSYSMail.To = "mail2@operador.com"'assunto da mensagemobjCDOSYSMail.Subject = rsCheckAll("Origem")'conteúdo da mensagemobjCDOSYSMail.TextBody = rsCheckAll("Mensagem")'objCDOSYSMail.fields.update'envia o e-mailobjCDOSYSMail.Send'destrói os objetosSet objCDOSYSMail = NothingSet objCDOSYSCon = NothingSet rsDelUlt = Server.CreateObject("ADODB.Recordset")strDelUlt = "DELETE * FROM ultima"rsDelUlt.Open strDelUlt, adoConstrUltData = "INSERT INTO ultima ( ultima_data ) SELECT Last(Entradas.Data) FROM Entradas"adoCon.Execute(strUltData)rsCheckAll.movenextLooprsCheckAll.CloseSet rsCheckAll = NothingSet adoCon = Nothingelseend if%>

Ou seja ele retorna o ultimo registo e envia para o mail caso a data dos registos sejam superiores à ultima gravada na tabela "ultima".

 

O problema agora é que ele tá retornando o seguinte erro:

 

Microsoft JET Database Engine error '80040e14'

 

Syntax error (missing operator) in query expression 'Data > 07-08-2007 15:53:47'.

 

/ccteste/teste.asp, line 34

 

Alguma ideia? do que pode estar causando o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não pode a cada update ou a cada insert fazer um select dos emails e enviar o que deseja?

Isso era o melhor mas infelizmente o que está a introduzir os dados no banco de dados é um software ao qual não tenho qualquer tipo de control, só posso mesmo aceder depois de serem inseridos os dados.Obrigado na mesma

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.