.
 
    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/ PHP4 e 5.2
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/ PHP4 e 5.2
MensagemEnviada: Sex Abr 17, 2009 3:35 am Responder com citação
rodrigo
Administrador
Administrador
 
Registrado: 28/08/05
Mensagens: 327
Localização: São Vicente/SP


Prezado Cliente,


IMPORTANTE:: Este Script não funciona com o PHP 5.3 em diante. Para criar formulários para com PHP 5.3 em diante, utilize o componente phpMailer. Veja o nosso tutorial sobre o phpMailer no endereço http://forum.itmnetworks.com.br/viewtopic.php?p=576

Pré-Requisitos: Ter ativo o PHP 4 ou PHP 5.2 em seu site hospedado com a ITMNETWORKS

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

Pensei 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. Tecnologia (SMTP Autenticado): mail() do php ou antigo CDONTS componente COM+ (usado no ASP, php etc), entre outros componentes, comandos e funções não permitem autenticação de SMTP, sendo assim, com este script vc pode enviar tranquilamente os dados de seu formulário utilizando o SMTP Autenticado sem se preocupar com o componente de envio de emails que será utilizado, não precisa se preocupar tambem com a linguagem de programação utilizada para o envio.

3. 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.

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 .php, as únicas 2 exigencias são: (a). é obrigatório estar no mesmo diretório do arquivo do formulário; (b). é obrigatório ter php 4 ou php 5.2 ativado em seu dominio 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.php

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.php . Segue o código de exemplo:

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

3. No arquivo formail.php (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.php 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-php.txt

Código:
<?
// NAO ALTERE OS DADOS ABAIXO
// DIREITOS AUTORAIS
// Data:  17 de Abril de 2009
// Autor: Rodrigo Araujo ( suporte (at) itmnetworks.com.br )
// URL: http://itm.guru/suporte
$pmensagem = "----\r\n";
foreach ($_POST as $pcampo => $pvalor) { $pmensagem .= strtoupper($pcampo) . " : " . $pvalor . "\r\n\r\n"; }
// NAO ALTERE OS DADOS ACIMA

# ALTERE OS DADOS ABAIXO
// endereco do servidor de smtp de seu site
$smtp_servidor = "mail.seusite.com.br"; 
 
// conta de email que vai autenticar no servidor de smtp
$smtp_email = "smtpformail@seusite.com.br";

// senha da conta de email que vai autenticar no servidor de smtp
$smtp_senha = "senhaDOsmtp";

// conta de email que vai receber as informacoes digitadas no formulario
$emaildedestino = "contato@seusite.com.br";

// 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
$urlsucesso = "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
$urlfalha = "http://www.seusite.com.br/errodeenvio.html";


// NAO ALTERE OS DADOS ABAIXO
$pmensagem .= "----\r\n";
$pmensagem .= "Sender-IP: ".$_SERVER["REMOTE_ADDR"]."\r\n";
$cMail = new COM("Persits.MailSender");
$cMail->Host = $smtp_servidor;
$cMail->Username = $smtp_email;
$cMail->Password = $smtp_senha;
$cMail->From = $emaildedestino;
$cMail->FromName = "FORMULARIO DE CONTATO";
$cMail->AddAddress($emaildedestino);
$cMail->Subject = "CONTATO VIA FORMULARIO DO SITE: ".$_SERVER["HTTP_HOST"];
$cMail->Body = $pmensagem;
$urldestino=$urlfalha;
if (strpos($_SERVER["HTTP_REFERER"],$_SERVER["HTTP_HOST"])) { if ($cMail->Send()) { $urldestino=$urlsucesso; } }
header("Location: ".$urldestino);
// NAO ALTERE OS DADOS ACIMA
?>


Para formulários feitos em Flash vc tem 2 opções:

1. Para quem não tem muita experiencia em flash: Remova apenas a linha header("Location: ".$urldestino); e efetue testes no email de destino para ver se esta funcionando corretamente.

2. Para quem tem experiência em programação em flash: Altere o valor de das variáveis $urlsucesso="SUCESSO" e $urlfalha="FALHA NO ENVIO" e substitua a linha: header("Location: ".$urldestino); coloque no lugar a linha: echo $urldestino; aí vc pode colher o resultado no flash e exibir para o usuario que preencheu o formulário. Vc tb pode criar o resultado em XML para o flash ler, neste caso use sua criatividade de acordo com seu conhecimento de programação em flash.

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: 17 de Abril de 2009
// Autor: Rodrigo Araujo

Este script funciona perfeitamente em todas as contas de hospedagem ou de revenda de hospedagem q 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 Original com php4 ou php5.2 e o componente ASP Persits.MailSender versão original e devidamente licenciado.

* ERROS MAIS COMUNS:

Erro 1: O arquivo formail.php 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.

IMPORTANTE:: Este Script não funciona com o PHP 5.3 em diante. Para criar formulários para com PHP 5.3 em diante, utilize o componente phpMailer. Veja o nosso tutorial sobre o phpMailer no endereço http://forum.itmnetworks.com.br/viewtopic.php?p=576

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,


Editado pela última vez por rodrigo em Qua Nov 04, 2015 4:49 pm; num total de 6 vezes

_________________
Atendimento

http://www.itmnetworks.com.br
Exibir perfil de usuários Enviar mensagem privada Visitar o website do usuário
Somente com PHP 4.4 ou PHP 5.2
MensagemEnviada: Sex Out 10, 2014 9:01 am Responder com citação
rodrigo
Administrador
Administrador
 
Registrado: 28/08/05
Mensagens: 327
Localização: São Vicente/SP


Prezado Cliente,

Para utilizar este recurso, é necessário que seu site esteja utilizando o PHP 4.4 ou PHP 5.2

Para criar formulários utilizando PHP 5.3 em diante, é necessário utilizar alguma biblioteca para PHP que forneça SMTP autenticado.

Recomendamos o uso da biblioteca phpmailer que esta disponivel para download no endereço: https://github.com/PHPMailer/PHPMailer

Atenciosamente,

_________________
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/ PHP4 e 5.2
  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