Por: Dan
por: Danilo Guedes
Eu estava caçando alguma luz que me mostrasse como enviar por email um arquivo anexado através de um formulário feito em php, depois de caçar bastante e de fazer alguns ajustes de acordo com a minha necessidade, eu cheguei ao seguinte resultado:
<?php
//peguei os dados enviados pelo formulario
$assunto = $_POST["assunto"];
$nome = $_POST["nome"];
$nome_bicho = $_POST["nome_bicho"];
$email_from = $_POST["email_from"];
$idade = $_POST["idade"];
$sexo = $_POST["sexo"];
$mensagem = $_POST["mensagem"];
$email = $_POST["email"];
//formato o campo da mensagem($string,tamanho de caracteres em relação a largura,"a cada 50 caracteres pula uma linha")
$mensagem = wordwrap( $mensagem, 50, "<br />");
//tratamento do anexo
$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);
$boundary = "XYZ-" . date("dmYis") . "-ZYX";
$mens = "–$boundary\n";
$mens .= "Content-Transfer-Encoding: 8bits\n";
$mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n"; //plain
$mens .= "<font face=verdana size=4><strong>$assunto"."<br><br></strong></font>";
$mens .= "<font face=verdana size=2><strong>Nome: </strong>"."$nome"."<br>";
$mens .= "<strong>Nome do Bicho: </strong>"."$nome_bicho"."<br>";
$mens .= "<strong>E-Mail: </strong>"."$email_from"."<br>";
$mens .= "<strong>Idade: </strong>"."$idade"."<br>";
$mens .= "<strong>Sexo: </strong>"."$email_from"."<br>";
$mens .= "<strong>Mensagem: </strong>"."$mensagem\n";
$mens .= "–$boundary\n";
$mens .= "Content-Type: ".$arquivo["type"]."\n";
$mens .= "Content-Disposition: attachment; filename=\"".$arquivo["name"]."\"\n";
$mens .= "Content-Transfer-Encoding: base64\n\n";
$mens .= "$anexo\n";
$mens .= "–$boundary–\r\n";
$headers = "MIME-Version: 1.0\n";
$headers .= "From: \"$nome\" <$email_from>\r\n";
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";
$headers .= "$boundary\n";
//envio o email com o anexo
mail($email,$assunto,$mens,$headers);
echo"<script language= 'JavaScript'>location.href='../obrigado.html'</script>";
}
//se nao tiver anexo
else{
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: \"$nome\" <$email_from>\r\n";
//envia o email sem anexo
mail($email,$assunto,$mens,$headers);
echo"Email enviado com Sucesso!<br>";
echo "<center><a href=\"javascript:history.go(-1)\">Voltar</center></a>";
}
?>
Qualque dúvida é só gritar =]