Conheça o Plugfeed | » Início » Programação » ASP » Mala direta e-mail com seleção por checkbox
Conheça o Plugfeed | » Início » Programação » ASP » Mala direta e-mail com seleção por checkbox -->
 
Avaliação: Não avaliado | Publicado em: 18/06/2007
Mala direta e-mail com seleção por checkbox
Alexandre de Luccia Analista e Desenvolvedor de Sistemas. Cursando Análise e Desenvolvimento de Sistemas no IBTA


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

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:\inetpub\wwwroot\seu_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" align="center" 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" align="center"><%
'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
%>


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

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