Este fórum é para dúvidas onde a base da questão é a linguagem ASP.
Moderador: web
por Rodrigo1 Offline » Qui Nov 06, 2008 4:03 pm
|
Ae Galera... Codigo enviar news...funciona lindo aki....mais tem q adaptar poius todo novo news voce tem q fazer o session("body") na mao! Se alguem quiser melhorar por favor o faca!
- Código: Selecionar todos
<%'----------------------------------------------------------------------------------------------------------------------------- If Session("body") = "" Then vInclude = Request.Form("body") '---------------------------------Aqui eu tiro as includes que dao erro-------------------------------------------------- If NOT vInclude = "conecta.asp" OR vInclude = "val_login.asp" Then '-------------------Aqui eu executo uma pagina em que atribui a session body todo o html----------------------- '-------------------Vou deixar um exemplo na segunda caixa de codigo do post------------------------------------- Server.Execute("../body/"&vInclude&"") Else Session("noInclude") = "Favor escolher um news!" Response.Redirect("index.asp") End If End If Session("noInclude") = "" '---------------------------------------------------------- 'Response.Buffer = False Server.ScriptTimeout = 999999 '-------------------------DIM e Requests---------------- DIM vGrupo, RsBody, vAssunto, RsListar, RsGrupos, objMail If Session("Grupo") = "" Then Session("Grupo") = Request.Form("grupo") Session("Assunto") = Request.Form("assunto") End If '-------------------Abre a conexao com o banco de dados----------------------- Session.LCID = 1046 'On Error Resume Next Set oConn = Server.CreateObject("ADODB.Connection") oConn.Open("DRIVER={MySQL ODBC 3.51 Driver}; SERVER=mysql01.SEUENDERECO.com.br; DATABASE=SEUDATABASE; User=SEUUSUARIO; PASSWORD=SUASENHA; OPTION=3" )
'--------------------Faz a listagem dos usuarios para pegar o nome-------------------- Set RsListar = Server.CreateObject("ADODB.Recordset") vSql = "SELECT * FROM `listaemail` WHERE id_cat ="&Session("Grupo")&" AND truefalse=0 LIMIT 10" RsListar.Open vSql, oConn '------------------------------------While-------------- While Not RsListar.EOF '---------------------Pega o nome e o email do usuario---------------------------- Set RsNome = Server.CreateObject("ADODB.Recordset") vSql = "Select * From listaemail where id_mail="&RsListar("id_mail")&"" RsNome.Open vSql, oConn '----------------------------SELECIONA O NOME DO GRUPOO NA TABELA------------------------ Set RsNomeGrupo = Server.CreateObject("ADODB.Recordset") vSqlNomeGrupo = "SELECT * FROM `categoria` WHERE id_cat ="&Session("Grupo") RsNomeGrupo.Open vSqlNomeGrupo, oConn '---------------------------------CDONTS-------------- While Not RsNome.EOF Response.Write(RsNome("email")&"<br />") Set eObjMail = Server.CreateObject("CDONTS.NewMail") eObjMail.to = RsNome("email") eObjMail.from = "email@SEUSERVIDORDEVERDADE.com.br" 'E IMPORTATANTE COLOCAR O SERVIDOR DE VERDADE PARA NAO CHEGAR NO LIXO ELETRONICO eObjMail.subject = Session("Assunto") eObjMail.Importance = 1 eObjMail.BodyFormat = 0 eObjMail.MailFormat = 0 eObjMail.body = Session("Body") eObjMail.send Set eObjMail = nothing
vSqlUpdate = "UPDATE `listaemail` SET `truefalse` = 1 WHERE id_mail="&RsListar("id_mail")&"" oConn.Execute(vSqlUpdate) RsNome.MoveNext Wend
RsListar.MoveNext Wend '----------------Cria o rs que verifica se acabou os emails---------------------- Set RsTry = Server.CreateObject("ADODB.RecordSet") vSqlTry = "SELECT * FROM `listaemail` WHERE id_cat ="&Session("Grupo")&" AND truefalse=0" RsTry.Open vSqlTry, oConn '-----------------------Faz o teste e avisa o sucesso----------------------------- If RsTry.EOF Then Response.Write("Ok") Session("NewsPop") = 1 Response.Redirect("index.asp?msg=OK!") Else Response.AddHeader "Refresh", 4 End If 'Response.End() '-----------------Exibe a mensagem de que os emails foram enviados com sucesso------------- 'Set Mailer = Nothing
'Response.Redirect("index.asp?&assunto="&vAssunto&"&msg=Os eMails foram enviados com sucesso.") %> <html> <head> <title>Favor aguardar...Enviando eMails</title> </head> <body> <div align="center"> <h2 style="color:#990000; font-family:Verdana, Arial, Helvetica, sans-serif;"> Enviando eMails...Aguarde </h2> <h4 style="color:#006600; font-family:Verdana, Arial, Helvetica, sans-serif;"> Enviando para o grupo - <%=RsNomeGrupo.fields("desc_cat")%> </h4> <p><a style="color:#990000; font-weight:normal; font-size:10px font-family:Verdana, Arial, Helvetica, sans-serif;" href="index.asp">Voltar (Não presione o voltar do browser)</a></p> <img src="http://www.manaca.com.br/images/bg_cartas.jpg" /></div> </body> </html>
Exemplo do body
- Código: Selecionar todos
<% 'Voce pode colocar o html completinho ai que funciona lindo! 'Eu envio paginas inteiras normalmente... Session("body") = "<html><head><title>Teste news</title></head><body>Aeee! Hello World</body></html>" If Request.QueryString("mail") = "ok" Then Response.Write(Session("body")) End If %>
No bd eu tenho 2 tabelas... uma com o id e nome de cada grupo e uma tabela de emails ligada as categorias de cada grupo via id_cat... para voce poder dividir o envio em blocos de grupos...segmentado. Fazendo propaganda por segmento voce atinge melhor seu target, tornando sua publicidade bem mais eficiente...
O truefalse do BD serve para marcar se enviado ou nao...uso como booleano
O script envia de 10 em 10 e atualiza a pagina em 4 segundos pra nao sobrecarregar o servidor e dar pau nos emails...do jeito que a locaweb gosta...hehe
o RsTry serve para ver se todos os emails do grupo estao com truefalse=1
Acho que expliquei o necessario... qq coisa tamo ai!
vou deixar meu email q q coisa
rodrigoviolato@hotmail.com

Contribua você tambem com o forum! Nao abandone seu post, responda se der certo! Paz!
Rodrigo1
SUPER ATIVO
Mensagens: 93
Registrado em: Qui Nov 06, 2008 2:49 pm
Localização: Sao Paulo
|
Voltar para Asp
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante