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.
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?
Você está enviando esse email com anexo via PHPMailer?
Creio que se no Outlook funciona e no IPAD não o problema seja no navegador ou programa de emails do tablet e não no modo de envio.
Abs
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.
Olá Julio,
Basta buscar todos os contatos no banco de dados e depois fazer um laço de repetição e disparar os emails.
Mas cuidados para nao ser bloqueado pelo seu servidor de emails por envio de SPAM.
Abs!
Para enviar o anexo eu tenho que fazer o upload do arquivo para o servidor web? ou posso mandar direto sem fazer o upload?
Olá Tops Brasília,
Para poder anexar o arquivo é necessário que ele esteja no servidor. Logo você deve escolher um arquivo que já esteja lá ou então fazer o upload do arquivo.
Abs!
Valeu Rafael. Precisando é so falar.