Vamos estudar como enviar e-mail através de uma lista de usuários, podendo selecionar para quem enviar através de checkbox:
1º . Instalar o componente CDONTS em sua máquina
- Link para download
- Após baixar o arquivo, execute-o (Clique em Iniciar, Executar) da seguinte forma: regsvr32 c:winntsystem32cdonts.dll
2º. Crie o nosso banco de dados de onde buscaremos o nome e e-mail de cada Usuário.
- Primeiro o banco de dados com o nome de Banco.mdb
- Em seguida a tabela com o nome de TB_USERS
- Por fim os campos (id_user, nome, email)
Após criar os campos salve o banco em uma pasta em seu servidor LOCAL (iis).
3º. Agora vamos criar as páginas:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Envio E-mail</title>
<style type="text/css">
<!--
.titulo {
font-family: Verdana;
font-size: 10px;
color: #FFFFFF;
}
.texto {font-family: Verdana; font-size: 10px; color: #000000; }
-->
</style>
</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\caminho_banco.mdb;Driver={Microsoft Access Driver (*.mdb)};"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.CursorLocation = 3
objRS.CursorType = 0
objRS.LockType = 1
strSQL = "SELECT * FROM TB_USERS"
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="texto" value="Enviar">
<br>
<br />
<table width="100%" border="0" cellpadding="2" cellspacing="1" bgcolor="#E8E8E8">
<tr>
<td width="20" height="20" align="center" bgcolor="#006699" ><span class="titulo">></span></td>
<td width="50%" height="20" bgcolor="#006699"><span class="titulo">Nome</span></td>
<td width="50%" height="20" bgcolor="#006699"><span class="titulo">E-mail</span></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" align="center"><span class="texto">
<%
'Passamos valor do e-mail para checkbox que separa valores escolhidos por ",".
%>
<input type="checkbox" name="box" value="<%= objRS("email")%>"/>
</span></td>
<%
'Listaremos nome no recordset.
%>
<td width="50%" class="texto" ><%=objRS("nome")%></td>
<%
'Listaremos e-mail no recordset.
%>
<td width="50%" class="texto"><%=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
%>
Resultado da página:
Agora a página set.asp (Nome indicado no form da página acima)
<%
'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 = "seuemail@seuprovedor.com.br"
objMail.To = ArrP(i)
objMail.Cc = ""
objMail.Bcc = ""
objMail.Subject = "Título"
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-mails enviado com sucesso!</font><br>")
response.Write("<font face='verdana' size='1'>Para: "&strP&".</font>")
%>
Resultado final:
Pronto!
Agora você já tem um sistema de disparo de e-mail. Nele você pode fazer adaptações para a real necessidade do seu sistema. Espero que seja útil a todos.