Você está na página 1de 3

Enviar e-mails pelo PHP usando o PHPMailer

68 Replies Voc est tendo problemas para enviar e-mails pelo seu script PHP? Seus problemas acabaram! Hoje vou ensinar como usar o PHPMailer para enviar os e-mails do seu site via SMTP com facilidade. O PHPMailer uma classe pronta para envio de e-mails atravs do PHP via conexo SMTP ou POP3 muito utilizado por todo o mundo. Seu mtodo de envio largamente recomendado e bem melhor do que o envio do mail() que funo padro do PHP. Primeiro voc precisa fazer o download da ltima verso dele, v nesse endereo e baixe a sua verso ou v direto ao site do script. Nota: Nesse tutorial usarei a verso 2.3 (download) do PHPMailer que a ltima verso at agora. Faa o download, descompacte o arquivo e coloque os arquivos class.phpmailer.php e class.smtp.php em uma pasta chamada phpmailer dentro do seu site. Agora, vamos ao script que faz o envio do e-mail:
01 <?php 02 // Inclui o arquivo class.phpmailer.php localizado na pasta phpmailer 04 require("phpmailer/class.phpmailer.php"); 03 05 06 // Inicia a classe PHPMailer 07 $mail = new PHPMailer(); 08 09 // Define os dados do servidor e tipo de conexo 10 // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 11 $mail->IsSMTP(); // Define que a mensagem ser SMTP 12 $mail->Host = "smtp.dominio.net"; // Endereo do servidor SMTP 13 //$mail->SMTPAuth = true; // Usa autenticao SMTP? (opcional) //$mail->Username = 'seumail@dominio.net'; // Usurio do servidor 14 SMTP 15 //$mail->Password = 'senha'; // Senha do servidor SMTP 16 17 // Define o remetente 18 // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 19 $mail->From = "seumail@dominio.net"; // Seu e-mail 20 $mail->FromName = "Joozinho"; // Seu nome

21 22 // Define os destinatrio(s) 23 // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 24 $mail->AddAddress('fulano@dominio.com.br', 'Fulano da Silva'); 25 $mail->AddAddress('ciclano@site.net'); 26 //$mail->AddCC('ciclano@site.net', 'Ciclano'); // Copia 27 28 29 // Define os dados tcnicos da Mensagem 30 // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 31 $mail->IsHTML(true); // Define que o e-mail ser enviado como HTML 32 //$mail->CharSet = 'iso-8859-1'; // Charset da mensagem (opcional) 33 34 // Define a mensagem (Texto e Assunto) 35 // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 36 $mail->Subject = "Mensagem Teste"; // Assunto da mensagem $mail->Body = "Este o corpo da mensagem de teste, em <b>HTML</b>! <br /> <img src="http://i2.wp.com/blog.thiagobelem.net/wp37 includes/images/smilies/icon_smile.gif?w=625" alt=":)" class="wpsmiley" height="15" width="15"> "; $mail->AltBody = "Este o corpo da mensagem de teste, em Texto Plano! \r\n <img src="http://i2.wp.com/blog.thiagobelem.net/wp38 includes/images/smilies/icon_smile.gif?w=625" alt=":)" class="wpsmiley" height="15" width="15"> "; 39 40 // Define os anexos (opcional) 41 // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= //$mail->AddAttachment("c:/temp/documento.pdf", 42 "novo_nome.pdf"); // Insere um anexo 43 44 // Envia o e-mail 45 $enviado = $mail->Send(); 46 47 // Limpa os destinatrios e os anexos 48 $mail->ClearAllRecipients(); 49 $mail->ClearAttachments(); 50 51 // Exibe uma mensagem de resultado 52 if ($enviado) { 53 echo "E-mail enviado com sucesso!"; 54 } else { 55 echo "No foi possvel enviar o e-mail.<br /><br />"; 56 echo "<b>Informaes do erro:</b> <br />" . $mail->ErrorInfo; 57 } 58 59 ?> //$mail->AddBCC('fulano@dominio.com.br', 'Fulano da Silva'); // Cpia Oculta

Algumas linhas de cdigo esto comentadas porque so opcionais e dependem tambm da necessidade de quem vai usar o script. Logo no comeo, na parte dos dados do servidor voc tem a opo de configurar o login do servidor SMTP caso seja necessrio. Repare que, na parte na qual definimos a mensagem e o assunto do e-mail, temos duas formas de corpo de e-mail: formato HTML e formato Texto Plano bom que voc tambm defina o texto plano (que nada mais do que um texto sem as tags HTML parecido com o contedo de um arquivo .txt) por que muitos leitores de e-mail no tm suporte a e-mails em HTML (seja por configurao do usurio ou por falta de funcionalidade mesmo). Deixei tambm um exemplo pronto de como anexar um arquivo ao seu e-mail. O caminho do arquivo (primeiro arquivo) est nos moldes de um servidor rodando localmente Mas ele pode ser relativo se voc estiver usando o script num servidor externo. O segundo argumento o novo nome do arquivo, mas opcional. Bom Espero que tenham entendido o script e consigam us-lo. Qualquer dvida s falar!