Enviar Arquivo por e-mail em PHP

Olá!
Tenho uma página php para fazer Upload de arquivo (currículo) e um botão para enviar esse arquivo por e-mail, o formulário possui apenas o botão de anexar conforme código a seguir:

<!--form PHP-->
<form action="envia.php" method="POST" enctype="multipart/form-data">
	<fieldset>		
		<!-- Campo Anexo -->
		<input type="file" name="arquivo">
		
		<!-- Botão Enviar -->
		<input type="submit" value="Enviar" class="button" />
	</fieldset>
</form>
</div>

O envio do arquivo funciona normalmente, o problema que só recebo o arquivo por e-mail se conter no máximo 56kb de tamanho, acima disso o e-mail chega, porém sem anexo.

Segue o meu código do “envia.php” para avaliação:

<?php
 
/* Valores recebidos do formulário  */
$arquivo = $_FILES['arquivo'];
$nome = $_POST['nome'];
$replyto = $_POST['replyto']; // Email que será respondido
$mensagem_form = $_POST['mensagem'];
$assunto = "Curriculo do meu site";
 
/* Destinatário e remetente */
$to = "meuemail@dominio.com.br";
$remetente = "meuemail@dominio.com.br"; // Deve ser um email válido do domínio
 
/* Cabeçalho da mensagem  */
$boundary = "XYZ-" . date("dmYis") . "-ZYX";
$headers = "MIME-Version: 1.0\n";
$headers.= "From: $remetente\n";
$headers.= "Reply-To: $replyto\n";
$headers.= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";  
$headers.= "$boundary\n"; 
 
/* Layout da mensagem  */
$corpo_mensagem = " 
<br>--------------------------------------------<br>
<br>Curriculo do meu Site.
<br><br>--------------------------------------------
";
 
/* Função que codifica o anexo para poder ser enviado na mensagem  */
if(file_exists($arquivo["tmp_name"]) and !empty($arquivo)){
 
    $fp = fopen($_FILES["arquivo"]["tmp_name"],"rb"); // Abre o arquivo enviado.
 $anexo = fread($fp,filesize($_FILES["arquivo"]["tmp_name"])); // Le o arquivo aberto na linha anterior
 $anexo = base64_encode($anexo); // Codifica os dados com MIME para o e-mail 
 fclose($fp); // Fecha o arquivo aberto anteriormente
    $anexo = chunk_split($anexo); // Divide a variável do arquivo em pequenos pedaços para poder enviar
    $mensagem = "--$boundary\n"; // Nas linhas abaixo possuem os parâmetros de formatação e codificação, juntamente com a inclusão do arquivo anexado no corpo da mensagem
    $mensagem.= "Content-Transfer-Encoding: 8bits\n"; 
    $mensagem.= "Content-Type: text/html; charset=\"utf-8\"\n\n";
    $mensagem.= "$corpo_mensagem\n"; 
    $mensagem.= "--$boundary\n"; 
    $mensagem.= "Content-Type: ".$arquivo["type"]."\n";  
    $mensagem.= "Content-Disposition: attachment; filename=\"".$arquivo["name"]."\"\n";  
    $mensagem.= "Content-Transfer-Encoding: base64\n\n";  
    $mensagem.= "$anexo\n";  
    $mensagem.= "--$boundary--\r\n"; 
}
 else // Caso não tenha anexo
 {
 $mensagem = "--$boundary\n"; 
 $mensagem.= "Content-Transfer-Encoding: 8bits\n"; 
 $mensagem.= "Content-Type: text/html; charset=\"utf-8\"\n\n";
 $mensagem.= "$corpo_mensagem\n";
}
 
/* Função que envia a mensagem  */
mail($to, $assunto, $mensagem, $headers);
?>

Informações Extras:
Apache: 2.4
PHP: 7.3
Fopen do PHP: Habilitado

Fiquem a vontade para me apresentar uma alternativa melhor de enviar e-mail com anexo.

Será que se vc n botar 16 ou 32 bits não aumenta esse limite de 56kbs?

Olá Gabriel,
Sem sucesso.

Olá, será que conseguem me ajudar? Queria pegar esse código acima e usar com um arquivo específico, eu substitui o $_FILES pelo caminho do arquivo mas não deu certo, sabem como fazer?

Opa!
Augusto, esquece esse meu código falho, a forma mais eficaz e válida de se enviar um e-mail é através de SMTP, ou seja, a mensagem deve partir de um e-mail válido, para isso, você vai precisar informar:

  • Um e-mail válido (responsável por enviar os e-mails)
  • O endereço do host SMTP (exemplo: smtp.hostinger.com.br)
  • A senha desse e-mail
  • A porta SMTP (geralmente 587)
    [esses dados você encontra na sua hospedagem]

O que vai lhe ajudar nesta demanda é utilizar o PHP Mailer, neste link contém tudo explicadinho:

Beleza? Leonardo, minha empresa usa a hostinger, e esse código serviu perfeitamente, consegui ajeitar para mandar um arquivo especifico e para minha finalidade, está ótimo, inclusive funciona com + de 56kbs, se quiser trocar ideia me chama no wpp 41988585113

Excelente!
Que bom que deu certo, com o PHP Mailer você vai ter certeza que o e-mail não vai cair no SPAM.