Ir para conteúdo

POWERED BY:

Arquivado

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

rafvenditti

[Resolvido] envio por e-mail

Recommended Posts

Pessoal se alguem puder me ajudar agradeco

 

tenho um formulario construido em .html o codigo abaixo

<p>Utilize o formulário abaixo:</p>
<form method="post" action="envia.php">
 <table width="100%" border="0">
   <tr>
     <td>Empresa</td>
     <td><label for="empresa"></label>
       <input name="empresa" type="text" class="inputNome" id="empresa" maxlength="50"></td>
   </tr>
   <tr>
     <td>Nome</td>
     <td><label for="nome"></label>
       <input name="nome" type="text" class="inputNome" id="nome" maxlength="50"></td>
   </tr>
   <tr>
     <td>Telefone</td>
     <td><label for="telefone"></label>
       <input name="telefone" type="text" class="inputTelefone" id="telefone" maxlength="50"></td>
   </tr>
   <tr>
     <td>E-mail</td>
     <td><label for="email"></label>
       <input name="email" type="text" class="inputEmail" id="email" maxlength="100"></td>
   </tr>
   <tr>
     <td>Descrição</td>
     <td><label for="descricao"></label>
       <textarea name="descricao" class="textDescricao" id="descricao"></textarea></td>
   </tr>
   <tr>
     <td> </td>
     <td>
     <input type="image" src="img/btn_enviar.gif" width="52" height="20" align="right" class="btnEnviar" onClick="lnkEnviar_Click">
     </td>
   </tr>
 </table>
</form>

 

e tenho um arquivo envia.php distribuido pela locaweb onde o site esta hospedado, alguem poderia ver se esta certo?, codigo abaixo e agradeco

<?php

/* 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='email@dominio.com.br'; // Substitua essa linha pelo seu e-mail@seudominio
} else {
       $emailsender = "webmaster@" . $_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.  */
if(PATH_SEPARATOR == ";") $quebra_linha = "\r\n"; //Se for Windows
else $quebra_linha = "\n"; //Se "não for Windows"

// Passando os dados obtidos pelo formulário para as variáveis abaixo
$empresa        = $_POST['empresa'];
$nome           = $_POST['nome'];
$telefone       = $_POST['telefone'];
$email          = $_POST['email'];
$descricao      = $_POST['descricao'];


/* 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 .= "Reply-To: " . $emailremetente . $quebra_linha;
// Note que o e-mail do remetente será usado no campo Reply-To (Responder Para)

/* Enviando a mensagem */
//É obrigatório o uso do parâmetro -r (concatenação do "From na linha de envio"), aqui na Locaweb:
if(!mail($empresa, $nome, $telefone, $email, $descricao, $mensagemHTML, $headers ,"-r".$emailsender)){ // Se for Postfix
   $headers .= "Return-Path: " . $emailsender . $quebra_linha; // Se "não for Postfix"
   mail($empresa, $nome, $telefone, $email, $descricao, $mensagemHTML, $headers );
}

/* 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
<p><a href='".$_SERVER["HTTP_REFERER"]."'>Voltar</a></p>"
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

EU trocaria isto:

if(PATH_SEPARATOR == ";") $quebra_linha = "\r\n"; //Se for Windows
else $quebra_linha = "\n"; //Se "não for Windows"

por isso:

 

$quebra_linha = PHP_EOL;

 

 

A variavel a ser enviada, deveria ser algo assim:

$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>';

$mensagemHTML =. $empresa.' - '.$nome.' - '.$telefone.' - '.$email.' - '.$descricao;

 

 

e esse trecho está errado.

if(!mail($empresa, $nome, $telefone, $email, $descricao, $mensagemHTML, $headers ,"-r".$emailsender)){ // Se for Postfix
   $headers .= "Return-Path: " . $emailsender . $quebra_linha; // Se "não for Postfix"
   mail($empresa, $nome, $telefone, $email, $descricao, $mensagemHTML, $headers );

 

Deveria ser algo assim:

 

if(!mail($email, 'assunto', $mensagemHTML, $headers ,"-r".$emailsender)){ // Se for Postfix
   $headers .= "Return-Path: " . $emailsender . $quebra_linha; // Se "não for Postfix"
   mail($email, 'assunto', $mensagemHTML, $headers );

 

 

sendo $email, o email de quem vai receber.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu William, na hora q substituir esses scripts e passo o resultado

 

Esta dando um erro de sintaxe no trecho abaixo

 

$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>';$mensagemHTML =. $empresa.' - '.$nome.' - '.$telefone.' - '.$email.' - '.$descricao;

 

e o codigo depois q o William postou ficou assim:

 

<?php 

/* 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='email@dominio.com.br'; // Substitua essa linha pelo seu e-mail@seudominio 
} else { 
       $emailsender = "email@dominio.com.br" . $_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.  */ 
$quebra_linha = PHP_EOL;

// Passando os dados obtidos pelo formulário para as variáveis abaixo 
$empresa        = $_POST['empresa']; 
$nome           = $_POST['nome']; 
$telefone       = $_POST['telefone']; 
$email          = $_POST['email']; 
$descricao      = $_POST['descricao']; 


/* 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>'; 

$mensagemHTML =. $empresa.' - '.$nome.' - '.$telefone.' - '.$email.' - '.$descricao;


/* 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 .= "Reply-To: " . $emailremetente . $quebra_linha; 
// Note que o e-mail do remetente será usado no campo Reply-To (Responder Para) 

/* Enviando a mensagem */ 
//É obrigatório o uso do parâmetro -r (concatenação do "From na linha de envio"), aqui na Locaweb: 
if(!mail($email, $mensagemHTML, $headers ,"-r".$emailsender)){ // Se for Postfix 
   $headers .= "Return-Path: " . $emailsender . $quebra_linha; // Se "não for Postfix" 
   mail($email, $mensagemHTML, $headers );
} 

/* 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 
<p><a href='".$_SERVER["HTTP_REFERER"]."'>Voltar</a></p>" 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual foi o erro q deu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro na linha 29, o codigo desse erro logo abaixo:

 

$mensagemHTML =. $empresa.' - '.$nome.' - '.$telefone.' - '.$email.' - '.$descricao;

 

os DETALHES do erro, criatura. Undefined variable, syntax error, parse error. Nem com bola de cristal daria pra adivinhar que tipo de erro a linha acima gerou no teu ambiente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei o erro, o codigo com erro

 $mensagemHTML =. $empresa.' - '.$nome.' - '.$telefone.' - '.$email.' - '.$descricao;

 

o codigo sem erro

 

 $mensagemHTML = $empresa.' - '.$nome.' - '.$telefone.' - '.$email.' - '.$descricao; 

 

 

Por causa de um

'.'

antes do $empresa ja dava erro, verei se ira funcionar no servidor

 

William, parabens pelo seu site, vo comecar a ver os posts para ver se eu melhoro um poko nos sites

 

William, eu vi no seu site, sera que resolveria o meu problema se utilizar jquery com o validade?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, o validate existe para outro propósito.

 

Oque ainda não deu certo para você?

o meu post que mais chega perto doque você precisa, seria este:

http://wbruno.com.br/2009/08/19/script-simples-de-formulario-de-contato/

Compartilhar este post


Link para o post
Compartilhar em outros sites

então o atributo action não está apontando corretamente para o arquivo.

 

confira o caminho.

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.