Mala direta e-mail com seleção por checkbox

Novo aqui no site? Talvez gostaria de assinar o
RSS feed do site?

Publicado em: 15/06/2007
Área: ASP
Visualizações: 3.114
Comentário(s): 1

imprimir envie por e-mail compartilhe
Primeiro temos que ter um banco de dados para buscar as informações dos usuários, para isto crie um banco de dados com uma tabela com os seguintes campos:
nome | email

Abaixo o código da página para listar os dados dos usuários e montar o checkbox para escolha.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Envio E-mail</title>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr></tr>
  <tr>
    <td> </td>
  </tr>
  <tr></tr>
  <tr>
    <td>
<%
'Aqui vamos abrir a conexão para resgatar valores do banco de dados
strCon = "DBQ=c:inetpubwwwrootseu_banco_de_dados.mdb;Driver={Microsoft Access Driver (*.mdb)};"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.CursorLocation = 3
objRS.CursorType = 0
objRS.LockType = 1
strSQL = "SELECT * FROM SUA_TABELA"
objRS.Open strSQL, strCon
If not objRS.EOF then
%>
      <table width="100%" border="0" cellpadding="0" cellspacing="0">
        <tr></tr>
        <tr>
          <td> </td>
        </tr>
        <tr></tr>
        <tr>
          <td>
<%
'Aqui faremos o action apontando para a página de envio.
%>
            <form action="set.asp" method="post" name="form" id="form">
              <input name="Submit" type="submit" class="style3" value="Enviar">
              <br>
              <br />
              <table width="100%" border="0" cellpadding="2" cellspacing="1" bgcolor="#E8E8E8">
                <tr>
                  <td width="20" height="20" bgcolor="#FFA74F" >></td>
                  <td width="50%" height="20" bgcolor="#FFA74F">Nome</td>
                  <td width="50%" height="20" bgcolor="#FFA74F">E-mail</td>
                </tr>
<%
'Aqui faremos a alternação das linhas da tabela, lembrando que não devemos colocar <tr> fora da linha ASP.  
objRS.MoveFirst
While Not objRS.EOF
if cor ="#FFFFFF" then
cor = "#CCCCCC"
else
cor ="#FFFFFF"
end if
response.Write "<tr bgcolor="& cor &">"
%>
                <td width="20" height="10"><%
'Passamos valor do e-mail para checkbox que separa valores escolhidos por ",".
%>
                    <input type="checkbox" name="box" value="<%= objRS("email")%>"/></td>
<%
'Listaremos nome no recordset.
%>
                  <td width="50%" height="10" class="style1" ><%=objRS("nome")%></td>
<%
'Listaremos e-mail no recordset.
%>
                  <td width="50%" height="10" class="style1"><%=objRS("email")%></td>
                </tr>
<%
objRS.MoveNext
Wend
Else
%>
                Não existe nomes a serem listados
<%
End If
%>
              </table>
            </form></td>
        </tr>
      </table></td>
  </tr>
</table>
</body>
</html>
<%
objRS.close
%>


O resultado da página acima:


Agora basta criar a página onde será efetuado o disparo de e-mail em nosso caso set.asp segue o código:
<%
'Resgata valor checkbox separados por vírgula.
strP=request.form("box")

ArrP=split( strP , "," ) 'No caso coloquei virgula, pois o separador é este, caso seja outro basta mudara para o desejado.

'Faz o loop para enviar até que dispare todos os selecionados.
for i = 0 to UBound(ArrP)
Set objmail = Server.CreateObject("CDONTS.NewMail")

objMail.From = "seu_email@seu_provedor.com.br"
objMail.To = ArrP(i)
objMail.Cc = ""
objMail.Bcc = ""

objMail.Subject = objRS("titulo")
sHTML = sHTML & "<html xmlns=""http://www.w3.org/1999/xhtml"">"
sHTML = sHTML & "<head>"
sHTML = sHTML & "<title>Envio e-mail</title>"
sHTML = sHTML & "</head>"
sHTML = sHTML & "<body leftmargin=""0"" topmargin=""0"" rightmargin=""0"" bottommargin=""0"" bgcolor=""#FCEFC3"">"
sHTML = sHTML & "Olá você usou o sistema de disparo de e-mail em massa!"
sHTML = sHTML & "</body>"
sHTML = sHTML & "</html>"

objMail.MailFormat = 0
objMail.BodyFormat = 0
objMail.body = sHTML

objMail.Send
sHTML = ""

On Error Resume Next
set objMail = Nothing

if Err <> 0 Then
Response.Write "Foi encontrado um erro (" & Err.Description & ")."
Response.End
End if

'Fim loop.
next
ObjRS.close

'Gera alerta de envio ao fim do código.
response.Write("<font face='verdana' size='1'>E-mail enviado com sucesso!</font>")
%>


Neste exemplo vimos como disparar e-mail's para usuários do banco de dados escolhindos através de um checkbox.

Espero que ajude no dia-dia.

Qualquer dúvida entre em contato comigo deixando um comentário.

Abraços!


Alexandre de Luccia

Preencha o formulário para comentar:
Nome:*

E-mail:* (não será exibido)

Site: (http://)

Comentário:*

Deseja receber os comentários no e-mail?

Anti-spam: (nova imagem)





Thiago

   - Publicado em: 23/08/2007 - 15:49

Alexandre, parabéns, bem bacana o exemplo. Você conhece algum similar, só que em php? Abraços

 

Autor da matéria
Alexandre de Luccia
Analista e Desenvolvedor de Sistemas desde 2005, atualmente desenvolvendo sistemas na Telefônica Brasil, no Centro de Operações Comerciais - COC.

Todas as matérias de Alexandre de Luccia

Publicidade
Seguir o Oficina da Net
RSS

RSS

RSS
Top matérias do mês
Matérias relacionadas
Tags

© 2005 - 2009 - Oficina da Net - v 4.0 - É proibida a reprodução parcial ou completa do conteúdo deste site sem autorização por escrito. Resolução adequada: 1024x768px.