Jump to content


Photo

Formulário


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 Dhio

Dhio

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Não informado

Posted 03/09/2009, 17:49

Olá Pessoal,

Estou com um problema em um formulário, eu quero que no e-mail onde vai para empresa o to(de) fica o e-mail que cliente digitou no formulário e o from(para) fica o e-mail da nossa empresa. Mais acontece que não consigo fazer isso, da http 500, então eu coloco o e-mail da nossa empresa para o to(de) e from(para) para funcionar, mais fica horrivel.

Resumindo, quero colocar o: $email = $_POST["email"];
Que é o e-mail onde o cliente vai colocar no formulário.

No: $headers .= 'From: ' . $email . $quebra_linha;

Mais ao fazer isso da http 500 e no mail eu coloco headers e etc: mail($email_to,
"Formulário",
$mens
,$headers,
);

Meu código:

email.htm
<html>
<head>
<script language="javascript">
 
function checa_formulario(email){
 
if (email.nome_para.value == ""){
alert("Por Favor nao deixe o nome em branco!!!");
email.nome.focus();
return (false);
}
 
if (email.email.value == ""){
alert("Nao deixe o email destinatario em branco!!!");
email.email.focus();
return (false);
}
 
if (email.assunto.value == ""){
alert("Nao deixe o assunto em branco!!!");
email.assunto.focus();
return (false);
}
 
}
</script>
<title>Enviando e-mail com anexo atrav&eacute;s do PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.email {
text-transform: lowercase;
}
.texto {
color: #0000FF
}
.style1 {color: #FF0000}
 
-->
</style>
</head>
 
<body onLoad="document.email.nome.focus();">
<form onSubmit="return checa_formulario(this)" action="envia2.php" method="post" enctype="multipart/form-data" name="email">
<input type=hidden name="recipient" value='criacao@imaxcomunicacao.com.br'>
	<input type=HIDDEN name="subject" value="Trabalhe Conosco">
	<input type=hidden name="redirect" value='http://www.strategique.com.br/Obrigadotra.htm'>
<h1 align="center" class="style1">Formulário de email com anexo </h1>
<table width="32%" border="0" align="center">
<tr>
<td><div align="right"><span class="texto">Para</span></div></td>
<td><input name="nome_para" type="text" id="nome_para"></td>
</tr>
<tr>
<td><div align="right" class="texto">Email</div></td>
<td><input name="email" type="text" id="email">
</tr>
<tr>
<td><div align="right" class="texto">Assunto</div></td>
<td><input name="assunto" type="text" id="assunto"></td>
</tr>
<tr>
<td><div align="right" class="texto">Mensagem</div></td>
<td><textarea name="mensagem" cols="50" rows="10" id="mensagem"></textarea></td>
</tr>
<tr>
<td><div align="right" class="texto">Anexo</div></td>
<td><input name="arquivo" type="file"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Enviar"></td>
</tr>
</table>
</form>
</body>
</html>

envia2.php
<?php
/*Verifica qual é o sistema operacional e ajusta a quebra da linha funcional do cabeçalho de e-mail para Windows e Linux
Existem diferenças entre o ambiente Linux e Windows, por isso a validação abaixo configura a variável $quebra_linha com o caracter correto para cada sistema_operacional
Windows utiliza "\r\n"
Linux utiliza "\n"
*/
 
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 não esta preparado para funcionar com o sistema operacional de seu servidor");
 
 
 
//define os dados do remetente (deve ser um e-mail do seu domínio conforme determina a RFC 822)
$email_to = 'web@master.com.br';
 
//pego os dados enviados pelo formulário
$nome_para = $_POST["nome_para"];
$email = $_POST["email"];
$mensagem = $_POST["mensagem"];
$assunto = $_POST["assunto"];
 
//formato o campo da mensagem
$mensagem = wordwrap( $mensagem, 50, "<br>", 1);
 
//valido os emails
if (!ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)){
 
echo('<center>Digite um email valido</center>');
echo('<center><a href="java script:history.go(-1)">Voltar</center></a>');
exit;
}
 
$arquivo = isset($_FILES["arquivo"]) ? $_FILES["arquivo"] : FALSE;
 
if(file_exists($arquivo["tmp_name"]) and !empty($arquivo)){
 
$fp = fopen($_FILES["arquivo"]["tmp_name"],"rb");
$anexo = fread($fp,filesize($_FILES["arquivo"]["tmp_name"]));
$anexo = base64_encode($anexo);
fclose($fp);
 
$anexo = chunk_split($anexo);
$mensagem_cabecalho = '<P><FONT color=#3300ff size=5>Mensagem entregue com sucesso!!!</FONT></P>
<P>Esse email é um teste enviado no formato HTML via PHP mail();!</P>
<TABLE>
<TBODY>
<TR>
<TH bgColor=#ff6666><FONT color=#ffffff><SPAN style="BACKGROUND-COLOR: #ff0000">Locaweb</SPAN></FONT></TH>
<TR>
<TD align=middle>Keep it simple</TD></TR></TBODY></TABLE>';
 
$boundary = 'XYZ-' . date("dmYis") . '-ZYX';
$mens = '--' . $boundary . $quebra_linha;
$mens .= 'Content-Transfer-Encoding: 8bits' . $quebra_linha;
$mens .= 'Content-Type: text/html; charset="ISO-8859-1"' . $quebra_linha . $quebra_linha;
$mens .= $mensagem_cabecalho . $quebra_linha;
$mens .= "Assunto: $assunto" . '<br>' . $quebra_linha = "\r\n";
$mens .= "Mensagem: $mensagem" . $quebra_linha = "\r\n";
$mens .= '--' . $boundary . $quebra_linha;
$mens .= 'Content-Type: ' . $arquivo["type"] . $quebra_linha;
$mens .= 'Content-Disposition: attachment; filename="' . $arquivo["name"] . '"' . $quebra_linha;
$mens .= 'Content-Transfer-Encoding: base64' . $quebra_linha . $quebra_linha;
$mens .= $anexo . $quebra_linha;
$mens .= '--' . $boundary . '--' . $quebra_linha;
 
$headers = 'MIME-Version: 1.0' . $quebra_linha;
$headers = "From: ".$email;
$headers .= 'Content-type: multipart/mixed; boundary="' . $boundary . '"' . $quebra_linha;
$headers .= $boundary . $quebra_linha;
 
//envio o email com o anexo
mail($email_to, 
	  "Trabalhe Conosco",
	  $mens
	  ,$headers,
	  );
 
echo('Email enviado com Sucesso!');
}

?>

Muito obrigado e desculpa o incomodo.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq