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.