Enviar e-mail html com arquivo em anexo
Estou tendo dificuldades em anexar um arquivo já disponivel numa pasta num e-mail que envio para diversos usuários através de um script PHP.
O e-mail chega normalmente nos endereços de e-mails. Entretanto, chega totalmente desformatado e sem o anexo.
Poderiam me ajudar a entender o que estou fazendo errado?
classe com funções para enviar os e-mails
class Utilidades {
public function enviar_email($assunto, $msg, $recebedor, $tem_anexo = false, $boundary = NULL) {
if(PATH_SEPARATOR == ';') {
$quebra_linha="\r\n";
} else $quebra_linha = "\n";
$headers = "From: Sistema Empresa <site@empresa.com.br>" . $quebra_linha . "";
$headers .= "Return-Path: site@empresa.com.br" . $quebra_linha . "";
$headers .= "Reply-To: Suporte Empresa <suporte@empresa.com.br>" . $quebra_linha . "";
if(!$tem_anexo) {
$headers .= "MIME-Version: 1.1" . $quebra_linha . "";
$headers .= "Content-type: text/html;charset=iso-8859-1" . $quebra_linha . "";
$headers .= "X-Priority: 1" . $quebra_linha . "";
} else {
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"" . $quebra_linha . "";
$headers .= "$boundary" . $quebra_linha . "";
$headers .= "X-Priority: 1" . $quebra_linha . "";
}
if(!mail($recebedor, $assunto, $msg, $headers, "-r" . "site@empresa.com.br")) {
if(!mail($recebedor, $assunto, $msg, $headers)) {
return false;
} else return true;
} else return true;
} //Fecha Function
} //Fecha Classe
página que envia as mensagens
if(PATH_SEPARATOR == ';') {
$quebra_linha="\r\n";
} else $quebra_linha = "\n";
$assunto = "Temos um assunto";
$arquivo = "../documentos/documento.pdf";
$boundary = "XYZ-" . date("dmYis") . "-ZYX";
$fp = fopen($arquivo, "rb");
$anexo = fread($fp, filesize($arquivo));
$anexo = base64_encode($anexo);
fclose($fp);
$anexo = chunk_split($anexo);
$mime_type = "application/pdf";
$corpo = "--$boundary" . $quebra_linha . "";
$corpo .= "Content-Transfer-Encoding: 8bits" . $quebra_linha . "";
$corpo .= "Content-Type: text/html;charset=iso-8859-1\"" . $quebra_linha . "" . $quebra_linha . "";
$corpo .= "<h2>Titulo</h2>";
$corpo .= "Imagine algum texto bem legal";
$corpo .= $quebra_linha;
$corpo .= "--$boundary" . $quebra_linha . "";
$corpo .= "Content-Type: " . $mime_type . "" . $quebra_linha . "";
$corpo .= "Content-Disposition: attachment; filename=\"" . $arquivo . "\"" . $quebra_linha . "";
$corpo .= "Content-Transfer-Encoding: base64" . $quebra_linha . "" . $quebra_linha . "";
$corpo .= "$anexo" . $quebra_linha . "";
$corpo .= "--$boundary--" . $quebra_linha . "";
// Consulta em base de dados mysql
$sql = "SELECT * FROM tabela WHERE status = '0'";
$query = mysql_query($sql);
while( $l = mysql_fetch_array($query) ) {
// Efetuando envio
$sistema = new Utilidades();
$sistema->enviar_email($assunto, $corpo, $l['email'], true, $boundary);
}
:huh: :unsure:Discussão (4)
Carregando comentários...