.
 
    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/ phpMailer
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/ phpMailer
MensagemEnviada: Qua Nov 04, 2015 4:00 pm Responder com citação
rodrigo
Administrador
Administrador
 
Registrado: 28/08/05
Mensagens: 326
Localização: São Vicente/SP


Prezado Cliente,


IMPORTANTE:: Este Script funciona com praticamente TODAS versões do PHP.

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.

Pré-Requisitos:

1. Ter ativo o PHP em seu site hospedado com a ITMNETWORKS

2. Efetuar o download do phpMailer no endereço: http://forum.itmnetworks.com.br/downloads/phpmailer.zip e descompactar os arquivos em seu computador, depois envie os arquivos via FTP para o mesmo diretório onde vai existir os arquivos do seu formulario

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

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

3. No arquivo formail-phpmailer.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 formai-phpmailerl.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-phpmailer-php.txt

Código:
<?
// NAO ALTERE OS DADOS ABAIXO
// DIREITOS AUTORAIS
// Data:  4 de Novembro de 2015
// 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";
if (!class_exists("phpmailer")) {
   require("PHPMailerAutoload.php");
}
$cMail = new PHPMailer();
$cMail->IsSMTP();
$cMail->Host = $smtp_servidor;
$cMail->SMTPAuth = true;
$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; } }
$cMail->ClearAllRecipients();
$cMail->ClearAttachments();
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: 4 de Novembro de 2015
// 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 disponível a linguagem de programação PHP.

* ERROS MAIS COMUNS:

Erro 1: O arquivo formail-phpmailer.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 funciona com praticamente TODAS versões do PHP.

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/ phpMailer
  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