jcarloslb

Envio de emails com anexo - PHPMailer()

May 2nd, 2013
362
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.73 KB | None | 0 0
  1. Primeiro faça o download da classe PHPMailer(): http://sourceforge.net/projects/phpmailer/files/
  2. Extraia os arquivos e os coloque dentro de uma pasta chamada phpmailer
  3.  
  4. <?php
  5.  
  6. //aqui você faz a requisição da classe phpmailer colocando o endereço onde ela está localizada
  7. require("phpmailer/class.phpmailer.php");
  8.  
  9.  
  10.  
  11.     if(isset($_POST['submit'])){
  12.              
  13.          $corpo = '
  14.                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  15.                    <table border="1">
  16.  
  17.                        <tr>
  18.                          <td><b>Nome:</b> </td>
  19.                          <td>'.$_POST['nome'].'</td>
  20.                        </tr>
  21.  
  22.                        
  23.                    </table>
  24.                   ';
  25.        
  26.  
  27. // Inicia a classe PHPMailer
  28.  
  29. $mail = new PHPMailer();
  30.  
  31.  
  32.  
  33. // Define os dados do servidor e tipo de conexão
  34.  
  35. // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  36.  
  37. //$mail->IsSMTP(); // Define que a mensagem será SMTP
  38.  
  39. //$mail->Host = "smtp.dominio.net"; // Endereço do servidor SMTP
  40.  
  41. //$mail->SMTPAuth = true; // Usa autenticação SMTP? (opcional)
  42.  
  43. //$mail->Username = '[email protected]'; // Usuário do servidor SMTP
  44.  
  45. //$mail->Password = 'senha'; // Senha do servidor SMTP
  46.  
  47.  
  48.  
  49. // Define o remetente
  50.  
  51. // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  52.  
  53. $mail->From = $_POST['email']; // Seu e-mail
  54.  
  55. $mail->FromName = $_POST['nome']; // Seu nome
  56.  
  57.  
  58.  
  59. // Define os destinatário(s)
  60.  
  61. // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  62.  
  63. $mail->AddAddress('[email protected]', 'Seu nome');
  64.  
  65. //$mail->AddAddress('[email protected]');
  66.  
  67. //$mail->AddCC('[email protected]', 'Ciclano'); // Copia
  68.  
  69. //$mail->AddBCC('[email protected]', 'Fulano da Silva'); // Cópia Oculta
  70.  
  71.  
  72.  
  73. // Define os dados técnicos da Mensagem
  74.  
  75. // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  76.  
  77. $mail->IsHTML(true); // Define que o e-mail será enviado como HTML
  78.  
  79. //$mail->CharSet = 'iso-8859-1'; // Charset da mensagem (opcional)
  80.  
  81.  
  82.  
  83. // Define a mensagem (Texto e Assunto)
  84.  
  85. // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  86.  
  87. $mail->Subject  = "Mensagem Teste"; // Assunto da mensagem
  88.  
  89. $mail->Body = utf8_decode($corpo);
  90.  
  91. //$mail->AltBody = "Este é o corpo da mensagem de teste, em Texto Plano! \r\n";
  92.  
  93.  
  94.  
  95. // Define os anexos (opcional)
  96.  
  97. // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  98.  
  99. //Nesta parte, o loop(for) se encarrega de verificar se existe anexo no formulário
  100. //Se houver mais de 01 anexo, ele envia todos os arquivos
  101. //Se não houver nenhum, a mensagem é enviada sem anexos
  102.  
  103.  
  104.         $arquivo = $_FILES['arquivo'];
  105.         for ($i=0; $i <= sizeof($arquivo); $i++)
  106.     {
  107.         if (is_uploaded_file($arquivo['tmp_name'][$i]))
  108.         {
  109.             // Adiciona um anexo de um caminho sobre o sistema de ficheiros
  110.             $mail->AddAttachment($arquivo['tmp_name'][$i], $arquivo['name'][$i]);
  111.         }
  112.  
  113.         }
  114.  
  115.  
  116. // Envia o e-mail
  117.  
  118. $enviado = $mail->Send();
  119.  
  120.  
  121.  
  122. // Limpa os destinatários e os anexos
  123.  
  124. $mail->ClearAllRecipients();
  125.  
  126. $mail->ClearAttachments();
  127.  
  128.  
  129.  
  130.  
  131.  
  132.         if($enviado){
  133.            
  134.             echo '<script>
  135.                    alert("Mensagem enviada com sucesso");
  136.                 </script>';                
  137.        
  138.         }else{
  139.        
  140.             echo '<script>
  141.                    alert("A mensagem não pode ser enviada");
  142.                 </script>';
  143.             }
  144.         }
  145.  
  146.  
  147. OBS.: No seu formulário, todos os campos do tipo file, deverão ter o name igual e seguido de colchetes [].
  148. Ex: <input type="file" name="arquivo[]" />
  149.     <input type="file" name="arquivo[]" />
  150.     <input type="file" name="arquivo[]" />
  151.  
  152. O uso do nome arquivo é opcional, caso necessite modificar devido ao seu desenvolvimento, basta alterar no código PHP que está acima. Não se esqueçam de fazer o download da classe PHPMailer(), sem ela, este script não irá funcionar.
  153.  
  154.  
  155. Fontes: http://blog.thiagobelem.net/    -    http://imasters.com.br/
  156.  
  157. Agradecimentos: Queria agradecer à galera da comunidade Desenvolvedores Web Brasil do Google+, em especial ao Icaro Maines Heimig, que teve a generosidade de me indicar o uso do PHPMailer(). Sou iniciante no PHP, e são poucas as pessoas na net que tem paciência de estar ensinando a alguém que não tem muito conhecimento.
  158.  
  159. Gostaria de agradecer a todos que me ajudaram também na comunidade PHP Brasil do Google+, o Ramon William que também me indicou a classe PHPMailer(), ao Maurício Programador, que mesmo na correria hoje conseguiu dedicar um tempo para me ajudar, ao Leonardo Felipe que me enviou um outro script, e ao Hélquison Dourado, que forneceu o script que ele usa para envio de emails com anexo, que eu retirei parte do script e consegui fazer funcionar o envio, adicionando apenas o loop para anexar mais de 01 arquivo.
  160.  
  161. Abraço!
Advertisement
Add Comment
Please, Sign In to add comment