Jump to content


Photo

Script Pronto De Mala Direta


  • Faça o login para participar
1 reply to this topic

#1 poiaweb

poiaweb

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 14/01/2009, 17:21

Ola todos do forum, sou novo, tanto em programação como aqui no forum, sendo esse o meu primeiro post. Infelizmente não sou programador ASP, que com certeza isso já aconteceu com alguns de vc´s, cair de paraquedas em alguns problemas de TI que tem que ser resolvidos.

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.


#2 DiegoCoruja

DiegoCoruja

    12 Horas

  • Usuários
  • 178 posts
  • Sexo:Masculino
  • Localidade:São Vicente - SP
  • Interesses:PROGRAMAÇÃO, WEB DESIGN, ESPORTE,

Posted 09/03/2009, 10:28

ola amigo vou tentar ajudar,
na pagina email.asp onde você lista o nome,email, curso, valor
você coloca alguns campos hidden
exemplo:

tem la

<td width="50%" class="texto" name="nome">
<%=objRS("nome")%>
<!--coloca isso-->
<input type="hidden" id="nome" name="nome" value="<%=objRS("nome")%>" />
</td>

faz isso no email e no curso se quizer

ai você recupera esse campo na pagina set.asp como já está fazendo no com checkbox selecionados

nome = trim(request.form("nome"))

depois é só concatenar no corpo do e-mail por exemplo:

sHTML = sHTML & Nome & "<br>"

só isso
====================================================
Diego M.
Html, CSS, Javascript, Asp, Asp.net, Php, Sql Server, Mysql, Oracle, VB.NET, VBA
====================================================




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq