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
Exibir tópico anterior :: Exibir próximo tópico
Envio de FORMULARIO por Email - Fácil e Seguro c/ PHP4 e 5.2
Enviada: Sex Abr 17, 2009 3:35 am
rodrigo
Administrador
Registrado: 28/08/05
Mensagens: 372
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 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 [email protected] 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 [email protected] . Veja que esta conta de email nao vai receber emails, ela vai servir apenas para autenticar no servidor de SMTP.
Exemplo: [email protected]
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
//inicio do arquivo formail.php
<?
// 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 = "[email protected]";
// 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 = "[email protected]";
// 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;
// se o conteudo da mensagem for HTML, altere de false para true a linha abaixo
$cMail->IsHTML(false);
$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
?>
//fim do arquivo formail.php
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
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 Ter Out 03, 2017 4:31 pm; num total de 8 vezes
_________________
Atendimento
http://www.itmnetworks.com.br
Somente com PHP 4.4 ou PHP 5.2
Enviada: Sex Out 10, 2014 9:01 am
rodrigo
Administrador
Registrado: 28/08/05
Mensagens: 372
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
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
Todas as mensagens1 Dia7 Dias2 Semanas1 Mês3 Meses6 Meses1 Ano Antigas primeiroRecentes primeiro
Selecione um fórum Informações Gerais da ITM NETWORKS----------------Procedimentos AdministrativosNovos Recursos, Atualizações e Avisos Importantes Suporte Técnico: Hospedagem Linux, Revenda de Hospedagem Linux----------------Painel de Controle cPanel: Hospedagem Linux [cpanel]Painel de Controle WHM/cPanel: Revenda de Hospedagem Linux [cpanel] Suporte Técnico: Hospedagem Windows, Revenda de Hospedagem Windows----------------E-MailFTPBanco de DadosFormulários, Componentes ASP, Fuções PHP e muito maisWAP, STREAMING, AUTHORWARE, AWSTATS, SSL, FrontPage, etcPainel de Controle HELM: Hospedagem Windows [helm]Painel de Controle HELM: Revenda de Hospedagem Windows [helm]Painel de Controle SolidCP: Hospedagem Windows [solidcp]Painel de Controle SolidCP: Multi Revenda de Hospedagem Windows [solidcp]Scripts e AplicaçõesDiversos Suporte Técnico: Serviços de SMTP----------------Serviços de SMTP Basic, Compartilhado, Dedicado Programação e Design----------------ASP/ASP.netPHPHTMLCSS/Java Script/DHTML