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é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> </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.










