GD Access    GD Access    Grupo de Discussão  Ir para Categorias  Grupos técnicos  Ir para Fóruns  Access    Enviar formulário por email
Go
Novo
Procurar
Notificar
Ferramentas
Responder
  
-star Rating Vote!  Login/Cadastrar 
Gerente

postado
Pessoal

Como eu faço para enviar email do formulário no corpo do email ?

Obs... Não é atachado!

alguem tem algumas dica?


****************************************************************************
Pessoal nosso ENCONTRO DO FORUM foi um SUCESSO. Parabéns , Luiz Claudio, Osmar, Rogério Oliveira, Avelino Sampaio, Ronaldo Ramires (KAAP), Fabio Trindade, Gilberto,Felipe Cortez, Informe access, Neros, Thiago,Augusto, Helio, Pedro simplesmente aos grandes AMANTES DO ACCESS.. Até o próximo!!
****************************************************************************
Desenvolvedor ACCESS - 10 Anos
MSN - nascimento_flavio@hotmail.com
Tel - (011) 9845-6262
****************************************************************************
 
Postagens: 3085 | Localização: Sao Paulo | Registrado: 14 September 2001Reply With QuoteReport This Post
Estagiário

postado Hide Post
Enviando mala-direta com paginação
Olá pessoal!
Esta é a minha primeira matéria que escrevo para o iMasters. É com grande alegria e satisfação que venho através deste artigo passar um pouco do meu trabalho para vocês e, caso tenham alguma dúvida a respeito deste código ou simplesmente queiram enviar suas dúvias, elogios e/ou sugestões, não exitem em me enviar um e-mail.
Estive "rodando" em alguns sites da web e percebi que existem muitas pessoas que ainda tem dúvidas de como enviar mala-direta corretamente. Geralmente quando programadores iniciantes ou até os experientes criam um script para enviar uma quantidade muito grande de e-mails, esquecem que por de trás do script existe um servidor de e-mails (logicamente, me referindo a este tipo de script). Quando o script é gerado e executado através de um servidor que é dedicado a milhares de outros usuários, quaisquer quantidade, por menor que ela seja, se mal estruturado, poderá acabar num desastre total dentro do processamento de um servidor.
Portanto, este script vai ensiná-los a maneira correta de enviar grandes quantidades de e-mails sem carregar o servidor e, principalmente, sem o servidor interpretar como prática de Spam.
Tecnologias envolvidas
================
- ASP
- Banco de dados Access
Inicio
Inicialmente vamos criar um banco de dados no Access e vamos chamar esta tabela de maladireta, com os campos id, nome e e-mail. Veja nas figuras abaixo:


Após criado o banco de dados, vamos ao código. Abra o seu editor preferido e mãos a obra! Iremos criar 2 páginas e um objeto que são elas:
- enviar.asp
- pagina_email.asp
- Objeto Persits Mail Sender (http://www.serverobjects.com)
Na página enviar.asp começaremos com o código para abrir a conexão com o banco de dados. Nas cores em vermelho estarão os comentários de cada trecho.
"=== É feita uma inclusão neste script a pagina que contém o e-mail em questão
<!-- #include file="pagina_email.asp" -->
<%
"=== Cria os objetos e abre a conexão com o banco de dados
Set ObjConn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")
ObjConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("banco/bd.mdb")
"=== O objeto ObjConn foi aberto
"=== Inicia a seleção dos dados na tabela maladireta
SQL = "Select * FROM maladireta"
RS.Open SQL, ObjConn, 3, 3
"=== Após selecionado todos os registros da tabela, abre a conexão usando objeto RecordSet
Após o ASP abrir o objeto e se conectar ao banco de dados, selecionaremos todos os registros da tabela maladireta. O objeto Record Set abre a string SQL.
Abaixo está uma condição para saber se há algum valor no parâmetro página da querystring. Se não houver, atribui o valor 1 (veremos mais a frente o motivo deste valor).
"=== Condição para verificar se existe algum valor na variável página na querystring
If Request.QueryString("pagina") = "" Then
pagina = 1
Else
pagina = Request.QueryString("pagina")
End if
Abaixo está o "coração" do script. É aqui que iremos indicar ao objeto Record Set todos os valores de controle de página.
"=== Atribuição de valores às variáveis de paginação
"Variável constante para controle de quantidade de registros exibidos (ou lidos) por página
const registros = 20
"Aqui o valor atribuido à variável registro é indicado à propriedade PageSize (quantidade por página)
RS.PageSize = registros
"Lembra daquela condição que fizemos para a variável página? Pois bem, a cada valor adicionado à variavel página, será esta quantidade de registros lidos pelo objeto. Ex.: Se a quantidade de registros forem de 60 registros e o número da variável página for 2, então será exibida a segunda metade dos registros.
RS.AbsolutePage = pagina
"Abaixo será atribuida à variável totpaginas a quantidade total de páginas. Usando o exemplo acima, se a quantidade total de registros for de 60, entao, 60 : 20 (total de registros por página) = 3 páginas
totpaginas = RS.PageCount
"Para a variável totregistros é atribuido o total de registros na tabela maladireta.
totregistros = RS.RecordCount
"Atribuindo o valor 1 ao contador i que será explicado mais abaixo.
i = 1
Abaixo se inicia o loop para o envio de e-mails em questão.
"=== Aqui inicia o Loop para o envio dos e-mails
While NOT RS.EOF AND NOT i > registros
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Server.ScriptTimeout = 50000
Mailer.ContentType = "text/html"
Mailer.RemoteHost = "smtp.uol.com.br"
Mailer.FromName = "Imasters"
Mailer.FromAddress = "teste@imasters.com.br"
Mailer.AddRecipient RS("nome"), RS("email")
Mailer.Subject="E-mail com paginação"
Mailer.Bodytext = HTM
x = Mailer.SendMail

If x = true then
Session("good") = Session("good") + 1
Else
Session("bad") = Session("bad") + 1
motivo = Mailer.Response
End If

i = i + 1
RS.MoveNext
Wend
"=== Fim do loop

"=== Condição para verificar se a variavel pagina é maior que o total das paginas
If NOT (pagina > totpaginas) Then

Response.AddHeader "Refresh", "2;URL=enviar.asp?pagina="&pagina+1
Response.Write("<strong><font face=verdana color=red>20 e-mails enviados.<BR>")
Response.Write("Aguarde, preparando script para enviar mais 20 e-mails...</font></strong>")

Else

Response.Write("<strong><font face=verdana color=red>Todos os e-mails enviados.</font></strong><BR><BR>")
Response.Write("<font face=verdana color=blue><b>Estatísticas</b></font><BR>=============================<BR>")
Response.Write("<font face=verdana color=black>E-mails enviados com sucesso: <b>"&Session("good")&"</b><BR>")
Response.Write("E-mails enviados sem sucesso: <b>"&Session("bad")&"</b><BR>")
Response.Write("Erro: <b>"&motivo&"</b><BR>--<BR>")
Response.Write("Total de e-mails no banco de dados: <b>"&totregistros&"</b></font>")
Session("good") = 0
Session("bad") = 0
Set Mailer = Nothing
Set RS = Nothing
Set ObjConn = Nothing

End If
%>
Falarei agora um pouco sobre a página pagina_email.asp, que servirá apenas como meio de organização para nosso script, mas que na verdade, não é uma regra.
Você poderá incluir a formatação do HTML nesta página mesmo (enviar.asp), apenas lembrando que todas as linhas do código deverão ser atribuidas a uma variável que deverá ser lida pela propriedade BodyText do objeto Mailer.
Abaixo segue um pequeno exemplo de como ficaria esta atribuição:
Obs.: Tire todas as aspas (") no HTML
HTM = "<html>"
HTM = HTM & "<head>"
HTM = HTM & "<title>Documento sem título</title>"
HTM = HTM & "<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>"
HTM = HTM & "</head>"
HTM = HTM & "<body>"
HTM = HTM & "Apenas um teste.... "
HTM = HTM & "</body>"
HTM = HTM & "</html>"
Portanto, uma dica que eu dou é que primeiro crie o layout do e-mail a ser enviado e depois retire manualmente, ou via localizar e substituir do seu editor preferido, as aspas.
Bom pessoal, chegamos ao fim do artigo. Espero que tenha bastante serventia a todos e o principal é que usem este script com responsabilidade! Um abraço e até a próxima!
 
Postagens: 56 | Registrado: 19 August 2005Reply With QuoteReport This Post
Gerente

Figura de  rogerio oliveira
postado Hide Post
Na tela do formulário de um ctrl+Print e no corpo do email crtl+c


Rogério Oliveira

“Aqueles que renegam o conhecimento estão fadados a se submeter ao controle daqueles que dominam a informação”

– Martin Luther King
http://www.vhumano.com.br
 
Postagens: 2603 | Localização: Guarulhos - SP | Registrado: 03 February 2005Reply With QuoteReport This Post
Gerente

postado Hide Post
Rogério

vc tem exemplo .... eu ainda não consegui..


****************************************************************************
Pessoal nosso ENCONTRO DO FORUM foi um SUCESSO. Parabéns , Luiz Claudio, Osmar, Rogério Oliveira, Avelino Sampaio, Ronaldo Ramires (KAAP), Fabio Trindade, Gilberto,Felipe Cortez, Informe access, Neros, Thiago,Augusto, Helio, Pedro simplesmente aos grandes AMANTES DO ACCESS.. Até o próximo!!
****************************************************************************
Desenvolvedor ACCESS - 10 Anos
MSN - nascimento_flavio@hotmail.com
Tel - (011) 9845-6262
****************************************************************************
 
Postagens: 3085 | Localização: Sao Paulo | Registrado: 14 September 2001Reply With QuoteReport This Post
Gerente

Figura de  rogerio oliveira
postado Hide Post
Mandei um mail para vc verifique se é isso que vc quer


Rogério Oliveira

“Aqueles que renegam o conhecimento estão fadados a se submeter ao controle daqueles que dominam a informação”

– Martin Luther King
http://www.vhumano.com.br
 
Postagens: 2603 | Localização: Guarulhos - SP | Registrado: 03 February 2005Reply With QuoteReport This Post
Gerente

postado Hide Post
Rogério

Não recebei ...... aqui estou a procura novamente ...


****************************************************************************
Pessoal nosso ENCONTRO DO FORUM foi um SUCESSO. Parabéns , Luiz Claudio, Osmar, Rogério Oliveira, Avelino Sampaio, Ronaldo Ramires (KAAP), Fabio Trindade, Gilberto,Felipe Cortez, Informe access, Neros, Thiago,Augusto, Helio, Pedro simplesmente aos grandes AMANTES DO ACCESS.. Até o próximo!!
****************************************************************************
Desenvolvedor ACCESS - 10 Anos
MSN - nascimento_flavio@hotmail.com
Tel - (011) 9845-6262
****************************************************************************
 
Postagens: 3085 | Localização: Sao Paulo | Registrado: 14 September 2001Reply With QuoteReport This Post
  Powered by Social Strata  
 

GD Access    GD Access    Grupo de Discussão  Ir para Categorias  Grupos técnicos  Ir para Fóruns  Access    Enviar formulário por email

©