Enviando um e-mail pelo site com resposta automática e arquivo anexo

Algum tempo atrás, fui contactado por um cliente que precisava enviar um arquivo anexado ao e-mail para os clientes interessados em seu catálogo de produtos. Esse catálogo consistia num arquivo PDF com preços e imagens dos mesmos.

Enviando um e-mail pelo site com resposta automática e arquivo anexo
Olá Pessoal! Algum tempo atrás, fui contactado por um cliente que precisava enviar um arquivo anexado ao e-mail para os clientes interessados em seu catálogo de produtos. Esse catálogo consistia num arquivo PDF com preços e imagens dos mesmos.

Pesquisei muito, e depois de concluir o serviço, achei justo dividir essa pesquisa com todos. Segue abaixo o código PHP para enviar e-mail com arquivo em anexo:

Primeiramente, um código bem conhecido aqui no Oficina da Net:



/* Enviar E-mail com Resposta Automática
* Desenvolvido por: Gabriel Pinheiro
* Data: 04/12/2007
*/

// Recebendo os dados passados pela página "form_contato.php"

$recebenome = $_POST['nome" target="_blank">;
$recebemail = $_POST['email" target="_blank">;
$recebemsg  = $_POST['mensagem" target="_blank">;

/* Validando os dados do formulário
* Adicionado dia 14/01/2008
* Por: Gabriel Pinheiro
*/

// Proibindo que os campos fiquem em branco

if (($recebenome == "") || ($recebemail == "") || ($recebemsg == ""))
{
    echo "";
    echo "";
}

// Validando o campo com E-mail
if (substr_count($recebemail,"@") == 0 || substr_count($recebemail,".") == 0)
{
    echo "";
    echo "";
}

// Definindo os cabeçalhos do e-mail
$headers = "Content-type:text/html; charset=iso-8859-1";

// Vamos definir agora o destinatário do email, ou seja, VOCÊ ou SEU CLIENTE
$para = "[email protected]";

// Definindo o aspecto da mensagem
$mensagem   = "

De:

";
$mensagem  .= $recebenome . $recebemail;
$mensagem  .= "

Assunto:

";
$mensagem  .= "Mensagem do Site";
$mensagem  .= "

Mensagem

";
$mensagem  .= "

";
$mensagem  .= $recebemsg;
$mensagem  .= "

";

// Enviando a mensagem para o destinatário
$envia =  mail($para,"E-mail do Site",$mensagem,$headers);

// Resposta Automática, preparando o e-mail com a resposta.
$mensagem2  = "

Olá " . $recebenome . ". Agradeçemos sua visita e a oportunidade de recebermos o seu contato. Em até 48 horas você receberá no e-mail fornecido a resposta para sua questão.

n";
$mensagem2 .= "

Observação - Não é necessário responder esta mensagem.

n";
?>


Só o que o trecho acima faz é receber as variáveis do formulário de contato e disparar os e-mails e a resposta automática. Ainda no mesmo arquivo, você deverá inserir o seguinte código para enviar um arquivo em anexo:


// Envia um e-mail para o remetente, agradecendo a visita no site, e dizendo que em breve o e-mail será respondido. Além disso, envia um arquivo .PDF em anexo.

$boundary = strtotime('NOW');

$headers = "From: Site n";
$headers .= "MIME-Version: 1.0n";
$headers .= "Content-Type: multipart/mixed; boundary="" . $boundary . ""n";

$msg = "--" . $boundary . "n";
$msg .= "Content-Type: text/html; charset="iso-8859-1"n";
$msg .= "Content-Transfer-Encoding: quoted-printablenn";  
$msg .= $mensagem2;
$msg .= "--" . $boundary . "n";
$msg .= "Content-Transfer-Encoding: base64n";
$msg .= "Content-Disposition: attachment; filename="endomarketing.pdf"nn";

ob_start();
readfile("endomarketing.pdf");
$enc = ob_get_contents();
ob_end_clean();

$msg_temp = base64_encode($enc). "n";
$tmp[1] = strlen($msg_temp);
$tmp[2] = ceil($tmp[1]/76);

for ($b = 0; $b <= $tmp[2]; $b++) {
    $tmp[3] = $b * 76;
    $msg .= substr($msg_temp, $tmp[3], 76) . "n";
}
unset($msg_temp, $tmp, $enc);
mail($recebemail, "Sua mensagem foi recebida!", $msg, $headers);
echo "";
echo "";
?>


O que essa parte final do script faz?
Simples: Ele envia um e-mail para a pessoa que efetuou o contato, neste e-mail está uma mensagem, e também um anexo de um arquivo, com um nome fictício de "endomarketing.pdf".

No geral, o administrador do site receberá um e-mail com o contado do cliente, e o cliente receberá uma resposta automática dizendo que sua mensagem foi recebida, e outro e-mail, agora com o arquivo em anexo.

Fazendo variações, é possível permitir que o próprio usuário escolha qual arquivo anexar, para enviar direto ao administrador do site. Porém não recomendo, uma vez que a incidência de vírus e outras pragas digitais podem fazer com que esse recurso deixe de ser inovador para ser desastroso.

Segue o material em anexo!

Forte abraço a todos, e até a próxima

Melhores celulares Xiaomi para comprar agora

Conteúdo relacionado

Melhores celulares da Xiaomi para comprar em 2021
Xiaomi

Melhores celulares da Xiaomi para comprar em 2021

Qual marca consegue oferecer modelos de celular que sejam bons e que não custe tanto? É provável que você tenha pensado na Xiaomi, e sim, você está certo. Confira a nossa lista de melhores modelos da empresa para comprar atualmente!

PHP :: Enviando e-mail autenticado
Programação

PHP :: Enviando e-mail autenticado

Vou mostrar a você como enviar e-mail autenticado pelo servidor, assim você evita de enviar via a função mail do PHP, que vários servidores bloqueiam quando se é muito utilizada.

Enviando um torpedo para celular através do site, usando PHP
Programação

Enviando um torpedo para celular através do site, usando PHP

É possível enviar uma mensagem de texto para um celular, simplesmente usando o PHP. Exste também uma infinidade de aplicações uteis, como por exemplo, receber as mensagens do site no celular.