Abaixo um exemplo de como enviar email com anexo utilizando a função básica mail do PHP.
//Edite as variáveis abaixo de acordo //Quem vai receber o email $to = ""; //Quem está enviando (Endereço a ser apresentado como da pessoa que está enviando) $from = ""; //Assunto do email $subject = ''; //Mensagem a ser enviada $message = ''; //Diretório onde o arquivo a ser enviado está salvo $path = ""; //Nome do arquivo anexo a ser enviado $filename = ""; //Não altere nada deste ponto em diante $headers = 'From: ' . "$from\r\n" . 'Reply-To: ' . "$from\r\n"; $file = $path . "/" . $filename; $file_size = filesize($file); $handle = fopen($file, "r"); $content = fread($handle, $file_size); fclose($handle); $content = chunk_split(base64_encode($content)); // a random hash será necessário para separar conteúdos diversos a serem enviados $separator = md5(time()); // Define o retorno de carro a ser utilizado $eol = PHP_EOL; // main header (multipart mandatory) $headers = "From: name <test@test.com>" . $eol; $headers .= "MIME-Version: 1.0" . $eol; $headers .= "Content-Type: multipart/mixed; boundary=\"" . $separator . "\"" . $eol . $eol; $headers .= "Content-Transfer-Encoding: 7bit" . $eol; $headers .= "This is a MIME encoded message." . $eol . $eol; // message $headers .= "--" . $separator . $eol; $headers .= "Content-Type: text/plain; charset=\"utf-8\"" . $eol; $headers .= "Content-Transfer-Encoding: 8bit" . $eol . $eol; $headers .= $message . $eol . $eol; // attachment $headers .= "--" . $separator . $eol; $headers .= "Content-Type: application/octet-stream; name=\"" . $filename . "\"" . $eol; $headers .= "Content-Transfer-Encoding: base64" . $eol; $headers .= "Content-Disposition: attachment" . $eol . $eol; $headers .= $content . $eol . $eol; $headers .= "--" . $separator . "--"; //SEND Mail if (mail($mailto, $subject, "", $headers)) { echo "Sucesso no envio do Email"; } else { echo "Erro! Não foi possível enviar o email solicitado"; }