Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

CaioYuji

[Resolvido] Formulario de contato

Recommended Posts

Olá pessoal! estou com um problema em um formulario de contato para meu site. Ele possui os campos apenas de: nome, email, telefone e mensagem. mas não está enviando para o e-mail desejado! (servidor em que está hospedado é da locaweb) vou colocar para vocês a estrutura para que analisem e se puder me ajudem =/

 

 

formulario.html

 

<form action="envia.php" method="POST" onsubmit="return verificar_form(this)">

 

<label><img src="imagens/nome.png" /></label><br />

        <input name="nomeremetente" id="nomeremetente" type="text" size="38"/><br />

 

<label><img src="imagens/email.png" /><label><br />

        <input name="emailremetente" id="emailremetente" type="text" size="38"/><br />

 

 

<label><img src="imagens/telefone.png" /></label><br />

        <input name="telefone" type="text" id="telefone" size="38"/><br />

 

 

<label><img src="imagens/mensagem.png" /></label><br />

        <textarea name="mensagem" id="mensagem" cols="36" rows="4" class="fomu"></textarea><br /><br />

 

<input type="submit" value="Enviar Mensagem!"/>

</form>

 

 

 

e abaixo segue a estrutura em php

 

 

envia.php

 

<?php

if(!isset($_POST[submit])) die("Não recebi nenhum par&acitc;metro. Por favor volte ao formulario.html antes");

/* Medida preventiva para evitar que outros domínios sejam remetente da sua mensagem. */

if (eregi('tempsite.ws$|locaweb.com.br$|hospedagemdesites.ws$|websiteseguro.com$', $_SERVER[HTTP_HOST])) {

$emailsender='contato@skymat.com.br';

} else {

$emailsender = "locaweb@" . $_SERVER[HTTP_HOST];

// Na linha acima estamos forçando que o remetente seja 'webmaster@seudominio',

// você pode alterar para que o remetente seja, por exemplo, 'contato@seudominio'.

}

 

/* Verifica qual é o sistema operacional do servidor para ajustar o cabeçalho de forma correta. Não alterar */

if(PHP_OS == "Linux") $quebra_linha = "\n"; //Se for Linux

elseif(PHP_OS == "WINNT") $quebra_linha = "\r\n"; // Se for Windows

else die("Este script nao esta preparado para funcionar com o sistema operacional de seu servidor");

 

// Passando os dados obtidos pelo formulário para as variáveis abaixo

$nomeremetente = $_POST['nomeremetente'];

$emailremetente = trim($_POST['emailremetente']);

$emaildestinatario = 'contato@skymat.com.br';

$comcopia = trim($_POST['comcopia']);

$comcopiaoculta = trim($_POST['comcopiaoculta']);

$telefone = $_POST['telefone'];

$mensagem = $_POST['mensagem'];

 

 

/* Montando a mensagem a ser enviada no corpo do e-mail. */

$mensagemHTML = '<P>Esse email é um teste enviado no formato HTML via PHP mail();!</P>

<P>Aqui está a mensagem postada por você formatada em HTML:</P>

<p><b><i>'.$mensagem.'</i></b></p>

<hr>';

 

 

/* Montando o cabeçalho da mensagem */

$headers = "MIME-Version: 1.1".$quebra_linha;

$headers .= "Content-type: text/html; charset=iso-8859-1".$quebra_linha;

// Perceba que a linha acima contém "text/html", sem essa linha, a mensagem não chegará formatada.

$headers .= "From: ".$emailsender.$quebra_linha;

$headers .= "Return-Path: " . $emailsender . $quebra_linha;

// Esses dois "if's" abaixo são porque o Postfix obriga que se um cabeçalho for especificado, deverá haver um valor.

// Se não houver um valor, o item não deverá ser especificado.

if(strlen($comcopia) > 0) $headers .= "Cc: ".$comcopia.$quebra_linha;

if(strlen($comcopiaoculta) > 0) $headers .= "Bcc: ".$comcopiaoculta.$quebra_linha;

$headers .= "Reply-To: ".$emailremetente.$quebra_linha;

// Note que o e-mail do remetente será usado no campo Reply-To (Responder Para)

 

/* Enviando a mensagem */

mail($emaildestinatario, $telefone, $mensagemHTML, $headers, "-r". $emailsender);

 

/* Mostrando na tela as informações enviadas por e-mail */

print "Mensagem <b>$assunto</b> enviada com sucesso!<br><br>

De: $emailsender<br>

Para: $emaildestinatario<br>

Com cópia: $comcopia<br>

Com cópia Oculta: $comcopiaoculta<br>

<p><a href='".$_SERVER["HTTP_REFERER"]."'>Voltar</a></p>"

?>

 

 

 

 

 

 

Se alguem por favor puder me ajudar ficarei muito grato pois estou tentando resolver este problema a muito tempo.

Obs:Já entrei em contato com o suporte da locaweb mas está tudo operando normalmente o problema é no script mesmo

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu também tive problemas com envio de email na locaweb. Eles permitem envio de dados somente através de um email do domínio hospedado. O emailsender não pode ser o email do usuário que manda a mensagem, tem que ser um email do seu domínio. Eu estou usando o script abaixo que é bem simples para hospedagem Linux.

 

 

 

<?

$mensagem = "Nome: ".$_POST['nome']." \n";

//email que o usuário preencheu

$mensagem .= "Email: ".$_POST['email']." \n";

$mensagem .= "Assunto: ".$_POST['assunto']." \n";

$mensagem .= "Telefone: ".$_POST['fone']." \n";

$mensagem .= "Mensagem: ". $_POST['mensagem'];

$headers = "";

//email do seu domínio hospedado

$emailsender = "webmaster@xxxx.com.br";

//email de quem vai receber

$emaildestinatario = "xxx@xxx.com.br";

$assunto = "Mensagem do site www.fsantos.net.br";

 

// Envio dos dados do Formulário para seu e-mail:

if(!mail($emaildestinatario, $assunto, $mensagem, $headers ,"-r".$emailsender))

 

{

// Se for Postfix - hospedagem linux

$headers .= "Return-Path: " . $emailsender . $quebra_linha;

}

echo '

<script type="text/JavaScript">

alert("Seu e-mail foi enviado com sucesso. Obrigado");

location.href="contato.htm"

</script>

';

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou testar Fabiano! jaja aviso se funcionou!

 

Cara MUUUUUITO obrigado! deu certinho e perfeito aqui! locaweb foi o unico servidor que tive problemas com isso >.<

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que deu certo. Eu também sofri bastante. Infelizmente o suporte da Locaweb é muito fraco e o serviço também. Estou tendo muitos problemas de conexão e lentidão. Ainda hoje tive problemas com a conexão FTP via Dreamweaver. Tentei ajuda do help desk deles, mas o atendente pediu para fazer uns testes nada haver. Cansei de esperar e fui pesquisar o problema. Pelo jeito, FTP ativo não funciona direito na Locaweb, somente FTP passivo. O help desk da Locaweb não conversa com os administradores dos servidores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, por favor me ajudem. Usei esse código e obtive a seguinte mensagem ao realizar o envio:

 

PHP Warning:  mail() [<a href='function.mail'>function.mail</a>]: "sendmail_from" not set in php.ini or custom "From:" header missing in E:\home\casttecnologiaearte\web\novo\contato.php on line 17

 

Vocês sugerem algum diagnóstico?

 

O servidor é localweb, windows. Tomei o cuidado de substituis os "/n" por "/r/n".

 

Muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites
FabianoSS - Muitíssimo obrigado!!!!! Salvou a minha vida! E acredito que de muitos.

No caso do e-mail webmaster@dominio.com.br (onde domínio.com.br é o contratado) é um e-mail padrão da LOCAWEB. Estranho, mas ele aparece por padrão no painel, por se tratar do e-mail do administrador.

 

Os caras da LocaWeb não informam nada, atendimento péssimo.

 

\o/\o/\o/\o/muito obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.