Meu caso e simples, temos aqui um sistema de Mala Direta, que está utilizando um script ASP (disponivél na internet) para envio e email de uma lista de contatos (banco de dados access).
Minha duvida e simples, fiz a criação no banco de dados Access, 3 (três) campos novos, fiz também a alteração do primeiro script, que mosta na tela todos os contatos registrado nesse banco (conforme script abaixo)
arquivo: email.asp
<%@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\email.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>
<td width="50%" height="20" bgcolor="#006699"><span class="titulo">Curso</span></td>
<td width="50%" height="20" bgcolor="#006699"><span class="titulo">Valor</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 ",". - CHECKED
%>
<input type="checkbox" name="box" value="<%= objRS("email")%>"/>
</span></td>
<%
'Listaremos nome no recordset.
%>
<td width="50%" class="texto" name="nome"><%=objRS("nome")%></td>
<%
'Listaremos e-mail no recordset.
%>
<td width="50%" class="texto"><%=objRS("email")%></td>
<%
'Listaremos curso no recordset.
%>
<td width="50%" class="texto"><%=objRS("curso")%></td>
<%
'Listaremos valor no recordset.
%>
<td width="50%" class="texto"><%=formatcurrency(objRS("valor"))%></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
%>Fiz também a alteração do arquivo set.asp, que envia o email para os contatos listados no arquivo email.asp (conforme script abaixo)
<%
'Resgata valor checkbox separados por vírgula.
strP=request.form("box")
'No caso coloquei virgula, pois o separador é este, caso seja outro basta mudara para o desejado.
ArrP=split( strP , "," )
'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 = "email@email.com.br"
objMail.To = ArrP(i)
objMail.Cc = ""
objMail.Bcc = ""
objMail.Subject = "Titulo"
sHTML = sHTML & "<html xmlns=""http://www.w3.org/1999/xhtml"">"
sHTML = sHTML & "<head>"
sHTML = sHTML & "<title>Titulo</title>"
sHTML = sHTML & "</head>"
sHTML = sHTML & "<body leftmargin=""0"" topmargin=""0"" rightmargin=""0"" bottommargin=""0"" bgcolor=""#FCEFC3"">"
sHTML = sHTML & "Texto <br><br><br>"
sHTML = SHTML & "Texto <br>"
sHTML = SHTML & "Texto <br>"
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>")
%>Duvida: Gostaria de saber como faço para colocar no corpo do e-mail (<body>...</body>) informações como por exemplo: Nome ou Curso e determinados locais para referenciar o texto a pessoa que esta sendo enviado o e-mail.
Fiz um teste fazendo a seguinte modificação do bloco HTML = sHTML &
objMail.Subject = "Titulo" sHTML = sHTML & "<html xmlns=""http://www.w3.org/1999/xhtml"">" sHTML = sHTML & "<head>" sHTML = sHTML & "<title>Titulo</title>" sHTML = sHTML & "</head>" sHTML = sHTML & "<body leftmargin=""0"" topmargin=""0"" rightmargin=""0"" bottommargin=""0"" bgcolor=""#FCEFC3"">" sHTML = sHTML & "Texto <br><br><br>" sHTML = SHTML & "Texto <br>" shTML = SHTML & ArrP(i) sHTML = SHTML & "Texto <br>" sHTML = sHTML & "</body>" sHTML = sHTML & "</html>"
Pude perceber que na hora de enviar o e-mail, aparecer o e-mail da pessoa que envie, gostaria de verificar a possibilidade de alterar ou criar uma nova variavél que tenha essa capacidade de mostrar o nome da pessoa que está sendo enviado o e-mail (sei que esse envio e feito em LOOP, só não sei criar esse bloco igual que foi feito para a varivél ArrP).
Agradeço a todos que puderem me ajudar, grande abraço.
Edição feita por: poiaweb, 15/01/2009, 09:21.










