1- O arquivo enviado é recebido como um arquivo sem extenção, logo tenho de associa-lo a um programa para poder abri-lo, no meu caso o word, pois seria para envio de currículos.
2- Ao receber caso eu queira responder o mesmo, o email do remetente aparece nome@oservidordehospedagem e não nome@meusite.com .
Segue o código, é bem simples.
<?
$sFrom = $_POST['nome'];
$sTo = 'gersonab@hidroweb.com';
$sSubject = $_POST['email'];
//Pega os dados do arquivo enviado pelo formulário:
$aAnexo = $_FILES['anexo'];
$sAnexo = $aAnexo['name'];
$fAnexo = $aAnexo ['tmp_name'];
$tAnexo = $aAnexo['type'];
//Abre o arquivo e o converte para a base 64, para poder ser enviado por e-mail:
$fOpen = fopen ($fAnexo, "rb");
$fAtach = fread ($fOpen,filesize($fAnexo));
$fAtach = base64_encode ($fAtach);
$fClose = fclose ($fOpen);
$fAtach = chunk_split($fAtach);
//$bound = "XYZ-" . date("dmYis") . "-ZYX";
$bound = "Message-Boundary";
//Header da mensagem:
$sHeader = "From: $sFrom\n";
$sHeader .= "MIME-Version: 1.0\n";
$sHeader .= "Content-type: multipart/mixed; boundary=\"$bound\"";
//Mensagem (com o Anexo):
$sBody = "--$bound\n";
$sBody .= "Content-type: text/html\n";
$sBody .= "Content-Transfer-Encoding: 7bit \n\n";
$sBody .= "--$bound\n";
$sBody .= "Content-type: $tAnexo\n";
$sBody .= "Content-Disposition: attachment; filename=$sAnexo\n";
$sBody .= "Content-Transfer-Encoding: base64\n\n$fAtach\n";
$sBody .= "--$bound\r\n";
//Envio da mensagem com o arquivo anexado:
$Envio = mail ($sTo, $sSubject, $sBody, $sHeader) ;
?>
Espero que tenham entendido as dúvidas.