
Olá Pessoal, há algum tempo atrás eu escrevi artigos sobre envios de e-mail com o PHP, porém ambos utilizavam a função mail() do próprio PHP, e sabemos que em alguns servidores (hospedagens) os admins bloqueiam o envio com essa função, para evitar envio de e-mails em massa (spam), só permitindo assim o envio com autenticação no servidor SMTP, o que é claro, possibilita o admin ter um controle dos envios feitos.
Bom, a grande maioria dessas hospedagens que tem o sistema de bloqueio a função mail() do PHP oferecem alternativas, com scripts próprios na grande maioria, mas ai vem um problema, se estiver utilizando um script deles, seja qual for, caso precise mudar de hospedagem, seja lá por qual motivo, você terá de mudar todos os scripts que enviam e-mails no site, e isso é um grande problema, ainda mais se o site for grande e tiver muitas páginas que fazem isso. Porém há uma solução para isso, chama-se PHPMailer, que é uma classe open source desenvolvida pela Codeworxtech que permite fazer o envio de e-mails autenticados.
Vamos falar agora do PHPMailer, como disse é uma classe em PHP desenvolvida pela Codeworxtech para trabalhar em praticamente em qualquer ambiente, sempre lembrando que existem alguns pré-requisitos, mas respeitando isso, você poderá fazer envio de e-mails com arquivos anexados, com código HTML ou só texto, multiplos destinatários, envio com cópia, entre outras funções interessantes, e é claro, essa função permite diferentes tipos de envio, no nosso caso aqui vou mostrar como se faz via autenticação no servidor SMTP, mas você pode utilizar inclusive com a função mail() do PHP, sendmail ou QMail.
Bom, vamos ao código, está bem explicado e comentado.
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 33 34 35 36 37 38 39 | < ? require("class.phpmailer.php"); // Chama o arquivo da classe $mail = new PHPMailer(); // Cria a instância $mail->SetLanguage("br"); // Define o Idioma $mail->CharSet = "iso-8859-1"; // Define a Codificação $mail->IsSMTP(); // Define que será enviado por SMTP $mail->Host = "smtp.meusite.com.br"; // Servidor SMTP $mail->SMTPAuth = true; // Caso o servidor SMTP precise de autenticação $mail->Username = "fulano@meusite.com.br"; // Usuário ou E-mail para autenticação no SMTP $mail->Password = "12345678"; // Senha do E-mail $mail->IsHTML(true); // Enviar como HTML $mail->From = "email@dominio.com.br"; // Define o Remetente $mail->FromName = "Roberto Carlos"; // Nome do Remetente $mail->AddAddress("teste@teste.com.br","Teste dos Santos"); // Email e Nome do destinatário // Estes campos a seguir são opcionais, caso não queira usar, remova-os $mail->AddReplyTo("email@dominio.com.br","Information"); // E-mail de Resposta $mail->AddCC("outroemail@dominio.com.br";"Nome"); // Envia Cópia $mail->AddBCC("meuemail@dominio.com.br";"Nome"); // Envia Cópia Oculta // Se você quiser anexar aquivos, pode utilizar os comandos abaixo, caso não vá enviar anexos, remova os comandos $mail->AddAttachment("/var/tmp/file.tar.gz"); // Arquivo Anexo 1 $mail->AddAttachment("/tmp/image.jpg","new.jpg"); // Arquivo Anexo 2 // Configuração de Assuntos e Corpo do E-mail $mail->Subject = "Assunto do E-mail"; // Define o Assunto $mail->Body = "Corpo da Mensagem em formato HTML"; // Corpo da mensagem em formato HTML // Este campo abaixo é Opcional $mail->AltBody = "Corpo da Mensagem somente Texto, sem formatações"; // Você pode mandar um e-mail somente texto, caso o leitor de e-mails da pessoa não leia no formato HTML // Fazemos o envio do email if(!$mail->Send()){ print "Ocorreu um erro no envio da Mensagem.<br />"; print "Erro: ".$mail->ErrorInfo; }else{ print "Sei e-mail foi enviado com Sucesso !!"; } ?> |
.
Bom, para fazer o download dessa classe, basta acessar o endereço a seguir:
http://sourceforge.net/projects/phpmailer/
Se quiser baixar este script, clique aqui.



















09. PHP Orientado a Objetos – Conceitos: Polimorfismo



