.
 
    Entrar       Download        
ITM NETWORKS - Forum - Índice » Formulários, Componentes ASP, Fuções PHP e muito mais » Envio de FORMULARIO por Email - Fácil e Seguro c/ ASP.Net
Novo tópico  Responder tópico Exibir tópico anterior :: Exibir próximo tópico 
Envio de FORMULARIO por Email - Fácil e Seguro c/ ASP.Net
MensagemEnviada: Qui Jul 09, 2015 4:33 pm Responder com citação
rodrigo
Administrador
Administrador
 
Registrado: 28/08/05
Mensagens: 327
Localização: São Vicente/SP


Prezado Cliente,

Pré-Requisitos: Ter ativo o ASP.Net Framework 4 e seu domínio configurado em modo isolado dentro dos servidores da ITMNETWORKS

Criamos este script inspirados na dificuldade de centenas de clientes na criação do arquivo que envia os dados do formulário para um determinado email.

Pensamos em 3 principios:

1. Segurança (Verificação da origem do POST): Muitos programadores, criam o arquivo responsável em colher os dados do formulário e enviar por email, mas se esquecem de verificar se o POST veio realmente do formulário do próprio dominio, sem esta verificação qq spammer pode criar um formulário, armazenar em um dominio externo e ficar efetuando POSTs em seu arquivo para enviar SPAM para a Internet Mundial.

2. Facilidade (o cliente é leigo ou experiente?): Não importa o quanto o cliente conhece de programação, se ele sabe fazer um formulário em um editor de formulários, basta ele configurar o formulário para dar um POST neste arquivo que ele envia as informações para o email desejado, para ele funcionar é necessário apenas a configuração de algumas variáveis com informações básicas como: servidor de smtp, login e senha do smtp e email de destino e ter ativo o ASP.Net Framework 4 e o dominio configurado em modo isolado dentro do nosso servidor web.

Então vamos lá:

Agora você ja pode criar o formulário de contato para seu site dentro de suas necessidades, utilize um editor de formulários como por exemplo: FrontPage, DreamWeaver, Microsoft Expression WEB, Bloco de notas Smile etc.

Você pode ser criativo, pode criar formulários de contato, formulários de orçamento, formulário do tipo envie seu curriculum, formulários de pesquisa de mercado, formulários com pesquisa de satisfação, entre outros.

Não existem limites: seu formulário pode ter o tamanho, quantidade e tipos de campos conforme sua necessidade. Pode ser feito também em qualquer linguagem de programação como por exemplo: html, php, asp, asp.net, coldfusion etc

Como funciona este script ?

O script abaixo, pega TODOS os campos e TODOS os dados digitados em seu formulário, formata todos os dados dentro do corpo da mensagem e envia para o email que você configurar.

Então vamos la:

1. Copie o script abaixo e coloque o nome que desejar mas obrigatoriamente com a extensao .aspx, as únicas 2 exigencias são: (a). é obrigatório estar no mesmo diretório do arquivo do formulário; (b). é obrigatório ter asp.net framework 4 e o domínio configurado em modo isolado ativados dentro do nosso servidor web. Em todos os planos de hospedagem e revenda de hospedagem windows da ITM NETWORKS vc tem ASP, ASP.Net e PHP funcionando simultaneamente.

Coloque como por exemplo o nome de: formail.aspx

2. No código fonte de seu formulário na tag form, configure o método para POST e o ACTION para o arquivo que envia os dados, neste caso formail.aspx . Segue o código de exemplo:

<form method="POST" action="formail.aspx" name="form" target="_self">

3. No arquivo formail.aspx (que tem o conteudo do script abaixo) altere os dados que estão entre aspas nas variaveis: smtp_servidor , smtp_email , smtp_senha , emaildedestino , urlsucesso , urlfalha

Dica importante:

Recomendamos criar uma conta de email chamada smtpformail@ no dominio que vai utilizar este script, desta forma, se vc alterar a senha de seu email de trabalho nao prejudica o funcionamento do script. Recomendamos criar uma conta com o nome smtpformail@ . Veja que esta conta de email nao vai receber emails, ela vai servir apenas para autenticar no servidor de SMTP.

Exemplo: smtpformail@itmnetworks.com.br

Lembre-se de colocar uma senha forte nesta conta de email, no mínimo 10 caracteres incluindo letras e números.


Segue abaixo o codigo fonte do script, lembre-se de copiar a salvar com o nome formail.aspx e configurar as variaveis a partir da linha "# ALTERE OS DADOS ABAIXO"

Caso queira efetuar o download deste script ele esta disponivel no endereço http://forum.itmnetworks.com.br/downloads/formail-aspx.txt

Código:
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Net.Mail" %>
<script runat="server">
   
    ' NAO ALTERE OS DADOS ABAIXO
    ' DIREITOS AUTORAIS
    ' Data:  09 de Julho de 2015
    ' Autor: Rodrigo Araujo ( suporte (at) itmnetworks.com.br )
    ' URL: http://www.itmnetworks.com.br/suporte
    ' NAO ALTERE OS DADOS ACIMA
   
    ' Se o email for enviado com SUCESSO sera aberto este endereco
    ' nao precisa obrigatoriamente chamar sucesso.html , pode ser
    ' feito em qq linguagem de programacao .asp  .aspx .php .htm  .html etc
    Dim urlsucesso As String = "http://www.seusite.com.br/sucesso.html"
 
    ' Se o email NAO FOR ENVIADO com sucesso sera aberto este endereco
    ' nao precisa obrigatoriamente chamar errodeenvio.html , pode ser
    ' feito em qq linguagem de programacao .asp  aspx .php .htm  .html etc
    Dim urlfalha As String  = "http://www.seusite.com.br/falha.html"
   
    ' endereco do servidor de smtp de seu site
    Dim smtp_servidor As String
   
    ' conta de email que vai autenticar no servidor de smtp
    Dim smtp_email As String
   
    ' senha da conta de email que vai autenticar no servidor de smtp
    Dim smtp_senha As String
   
    ' conta de email que vai receber as informacoes digitadas no formulario
    Dim emaildedestino As String

    ' variável que conterá os campos e as informações digitadas no formulario
    Dim mensagem As String
   
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
       
        Dim objSMTP As New SmtpClient
        Dim objSMTPCredentials As New Net.NetworkCredential
        Dim objMSG As New MailMessage
       
        ' ALTERE OS DADOS ABAIXO
        smtp_servidor = "smtp.seusite.com.br"
        smtp_email = "smtpformail@seusite.com.br"
        smtp_senha = "senhaDOsmtp"
        emaildedestino = "contato@seusite.com.br"
        ' ALTERE OS DADOS ACIMA
       
        ' NAO ALTERE OS DADOS ABAIXO
        Try
           
            If InStr(Request.ServerVariables("HTTP_REFERER"), Request.ServerVariables("HTTP_HOST")) = 0 Then

                Response.Redirect(urlfalha)

            End If
           
            mensagem = "<tt><font size=""3"">----<br>"

            For Each item In Request.Form

                mensagem = mensagem + item.ToString.ToUpper + " : " + Replace(Request.Form(item), vbLf, "<br>") + "<br><br>"
               
            Next
           
            mensagem = mensagem + "----<br>Sender-IP: " + Request.ServerVariables("REMOTE_ADDR") + "</tt>"
                       
            objSMTPCredentials.UserName = smtp_email
            objSMTPCredentials.Password = smtp_senha

            objSMTP.Credentials = objSMTPCredentials
            objSMTP.Host = smtp_servidor
                       
            objMSG.Subject = "CONTATO VIA FORMULARIO DO SITE: " + Request.ServerVariables("HTTP_HOST")
            objMSG.Body = mensagem
            objMSG.IsBodyHtml = True
            objMSG.From = New MailAddress("FORMULARIO DE CONTATO <" + emaildedestino + ">")
            objMSG.To.Add(New MailAddress(emaildedestino))
           
            objSMTP.Send(objMSG)
           
            Response.Redirect(urlsucesso)
           
        Catch ex As Exception
           
            Response.Redirect(urlfalha)
                                   
        Finally
           
            objSMTP.Dispose()
            objMSG.Dispose()
           
        End Try
        ' NAO ALTERE OS DADOS ACIMA
       
    End Sub
   
</script>



Basicamente é isso Smile

Autorizo a todos a utilização deste script gratuitamente desde que mantenha os direitos autorais.

Para os clientes de revenda de hospedagem da ITM NETWORKS eu autorizo a alteração dos direitos autorais removendo o email de contato e o endereço do nosso site, ou seja, deve manter-se da seguinte forma:
// DIREITOS AUTORAIS
// Data: 09 de Julho de 2015
// Autor: Rodrigo Araujo

Este script funciona perfeitamente em todas as contas de hospedagem ou de revenda de hospedagem windows que estejam dentro dos servidores da ITM NETWORKS.

Para este script funcionar fora dos servidores da ITM NETWORKS é necessário que o servidor tenha o sistema operacional Windows Server 2003 em diante com ASP.Net Framework 4 em Medium Trust versão original e devidamente licenciado.

* ERROS MAIS COMUNS:

Erro 1: O arquivo formail.aspx que contem o script, não pode conter outro conteúdo, é obrigatório conter apenas o script, caso contrário vc poderá receber mensagens de erro, como por exemplo: Warning: Cannot modify header information - headers already sent by (output started at ... )

Erro 2: No campo smtp_email / smtp_senha não utilize uma conta de email de uso comum, porque quando o usuario alterar a senha do email o formulário vai parar de funcionar, então crie uma conta de email exclusiva para colocar no campo smtp_email / smtp_senha
No campo emaildedestino você deve colocar a conta de email que o usuário deseja receber as informações digitadas no formulário.
Importante: tanto no campo smtp_email e no campo emaildedestino , você precisa utilizar obrigatoriamente conta de email do mesmo domínio.


QQ duvida estamos a disposição EXCLUSIVAMENTE para os clientes da ITM NETWORKS em qualquer um dos meios de comunicação disponíveis no endereço http://itm.guru/suporte


Obrigado e bons negócios,

_________________
Atendimento

http://www.itmnetworks.com.br
Exibir perfil de usuários Enviar mensagem privada Visitar o website do usuário
Envio de FORMULARIO por Email - Fácil e Seguro c/ ASP.Net
  ITM NETWORKS - Forum - Índice » Formulários, Componentes ASP, Fuções PHP e muito mais
Você não pode enviar msgs novas neste fórum
Você não pode responder msgs neste fórum
você não pode editar suas msgs neste fórum
Você não pode excluir suas msgs neste fórum
Você não pode votar em enquetes neste fórum
Todos os horários são GMT - 3 Horas  
Página 1 de 1  

  
  
 Novo tópico  Responder tópico  

ITM NETWORKS - Hospedagem de Sites Windows e Revenda de Hospedagem Windows
phpBB versão em português traduzida por Gustavo Montes e corrigida por Rodrigo Adr. Araujo

Powered by phpBB © phpBB Group