Emails com anexo utilizando a classe PHPMailer

Para quem ainda não conhece a classe PHPMailer é uma classe desenvolvida em php que auxilia no processo de envio de emails, possibilitando de maneira fácil a autenticação dos mesmos e a definição de cabeçalhos e corpo bem estruturados.

Pois bem, nesse post vou abordar uma funcionalidade bastante prática dessa classe, que é a inclusão de anexos nos emails que estão sendo enviados.

Para acompanhar as explicações e fazer seus exemplos, basta entrar no site https://github.com/PHPMailer/PHPMailer/ e baixar gratuitamente a classe. Feito isso, descompacte os arquivos e os envie ao seu servidor.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
require_once('phpMailer/class.phpmailer.php');
 
$mail = new PHPMailer(); //instancia a classe
 
$mail->IsMail();//define função
 
//autenticação
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'seu_email@gmail.com';
$mail->Password = 'sua_senha';
$mail->Port = '465';
 
$mail->IsHTML(true);
$mail->Subject = utf8_decode("Testando email com anexo!");//assunto do email
$mail->From = "seu_email@gmail.com";//email do remetente
$mail->FromName ='Seu Nome';//nome do remetente
 
$mail->Body = utf8_decode("Olá <strong>Fulano de Tal</strong>, você recebeu um email com anexo!");
$mail->AddAddress('destinatario@servidor.com');//email do destinatario
$mail->AddAttachment('my_file.pdf');//anexa o arquivo
 
$verifica = $mail->Send();//envia o email
 
if($verifica){
    echo "Enviou";
}
else{
    echo "Não enviou!" . $mail->ErrorInfo;
}
?>

No exemplo acima eu defini também servidor/usuario/senha/porta para que nosso email seja autenticado e não caia na pasta de Lixo Eletrônico. Depois coloco o assunto do email, a mensagem, o email e nome do remetente e o email do destinatário.  O método AddAttachment é responsável por adicionar o anexo (você pode colocar mais de um anexo). Detalhe: o arquivo que eu anexei(my_file.pdf) está no servidor no mesmo nível de diretório da página que enviará o email. Para anexar arquivos de seu computador você deve fazer o upload dele para o servidor primeiro.

Por fim o email é enviado através do método Send. A condição verifica se o email foi enviado com sucesso ou não e informa o usuário.

Espero ter ajudado

Abs.

 

É formado em Sistemas de Informação, pós-graduado em Sistemas de Banco de Dados e mestre em Educação com foco em Tecnologias Sociocomunitárias. Trabalha como professor de ensino técnico e tecnológico no Instituto Federal de Educação, Ciência e Tecnologia de São Paulo ministrando disciplinas nas áreas de programação, banco de dados, desenvolvimento de projetos e engenharia de software.

Posts relacionados

Comentários

  1. Boa tarde,

    Amigo to tento problema para enviar pdf para meu ipad, quando faço o teste de envio para meu pc (SO: W7) abro no outlook e vejo o anexo, porem quando tento abrir no meu ipad usando o Mail ele nao vem o anexo em pdf. vc saberia dizer o que pode ser?

  2. Olá Rafael,

    É possível usar essa função para envio de mailing? (uma lista de emails que puxo do BD). Como seria esse processo?

    obrigado.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *