Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Mint Menu no Ubuntu 10.04
Por pinduvoz
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Utilizando a classe phpmailer como alternativa a função mail() do PHP
Linux user
Publicado por Thiago Luiz da Silva em 26/11/2009

Login: thiago.silva, 34152 pontos
[ Hits: 4539 ]

Utilizando a classe phpmailer como alternativa a função mail() do PHP

A classe phpmailer é uma ótima alternativa pois não necessita de servidores SMTP rodando na máquina, facilitando seu uso em diversos sistemas operacionais. Antes de tudo precisamos baixar a classe phpmailer, disponível em:
Procure pelo arquivo "PHPMailer_v5.1.zip" na categoria PHPMailer v5.1 ou superior.

Depois de descompactar o arquivo em uma pasta de seu interesse dentro do servidor, é só incluir no arquivo desejado com a função:

include("suapasta/phpmailer/class.phpmailer.php");

Vamos agora enviar um email simples em modo texto:

<?PHP
//Primeiro setamos o cabeçalho:
  $header .= " Content-type: text/html; charset=iso-8859-1\r\n";  
//instanciamos o objeto
$mail = new PHPMailer();
// Informamos que vamos enviar através de SMTP
$mail->IsSMTP();
// Colocamos o servidor smtp
$mail->Host = "smtp.seusmtp.com.br";
// Se seu servidor de smtp necessita de autenticação, devemos habilitar este item:
$mail->SMTPAuth = true;
// colocamos agora o usuário e senha do servidor smtp
$mail->Username = "seuemail@seumsmtp.com.br";
$mail->Password = "******";
// Agora vamos informar qual email vai aparecer como remetente
$mail->From = "seuemail@seusmtp.com.br";
$mail->FromName = "Seu Nome";

//Agora vamos adicionar alguns destinatários
$mail->AddAddress("fulano@vivaolinux.com.br","Fulano");
$mail->AddAddress("ciclano@vivaolinux.com.br","Ciclano");
//Podemos setar qual é o tamanho do texto por linha pra quebrar a linha de forma automática
$mail->WordWrap = 50;
//Vamos colocar o assunto do email
$mail->Subject = "Hello sWriter";
//Colocamos o texto do email
$mail->Body = "Este foi meu teste de email";
//e mandamos enviar:
  if(!$mail->Send())
  {
//Exibimos o erro ocorrido
     echo $mail->ErrorInfo;
  }
?>

Email avançado HTML + anexo

Agora vamos enviar um email mais elaborado em HTML e com anexos.

Primeiro vamos inicializar a parte padrão do email da mesma maneira que na anterior:

<?PHP
//Primeiro setamos o cabeçalho:
  $header .= " Content-type: text/html; charset=iso-8859-1\r\n";  
//instanciamos o objeto
$mail = new PHPMailer();
// Informamos que vamos enviar através de SMTP
$mail->IsSMTP();
// Colocamos o servidor smtp
$mail->Host = "smtp.seusmtp.com.br";
// Se seu servidor de smtp necessita de autenticação, devemos habilitar este item:
$mail->SMTPAuth = true;
// colocamos agora o usuário e senha do servidor smtp
$mail->Username = "seuemail@seumsmtp.com.br";
$mail->Password = "******";
// Agora vamos informar qual email vai aparecer como remetente
$mail->From = "seuemail@seusmtp.com.br";
$mail->FromName = "Seu Nome";

//Agora vamos adicionar alguns destinatários
$mail->AddAddress("fulano@vivaolinux.com.br","Fulano");
$mail->AddAddress("ciclano@vivaolinux.com.br","Ciclano");
//Podemos setar qual é o tamanho do texto por linha pra quebrar a linha de forma automática
$mail->WordWrap = 50;
//Vamos colocar o assunto do email
$mail->Subject = "Hello sWriter";
?>

Agora sim vamos as novidades:

<?PHP
//vamos anexar os arquivos:
$mail->AddAttachment("anexo/arquivo.zip");
$mail->AddAttachment("imagem/foto.jpg");

//Setamos a propriedade do HTML para true
$mail->IsHTML(true);

//Colocamos o texto do email
$mail->Body = "<H1><b>Este é um texto em HTML</b></H1>";
//e mandamos enviar:
  if(!$mail->Send())
  {
//Exibimos o erro ocorrido
     echo $mail->ErrorInfo;
  }
?>

É isso aí pessoal, agradeço por estarem lendo este texto e qualquer dúvida é só perguntar.

Espero que este tenha sido útil.


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Inkscape: Ajustando texto ao caminho
   Dica Linux recomendada Subversion + CentOS 5.5
   Dica Linux recomendada Criar xorg.conf no Ubuntu 9.10
   Dica Linux recomendada Frostwire - o que é e como instalar
   Dica Linux recomendada Live CDs, uma boa sugestão para os iniciantes

Comentários
[1] Comentário enviado por joaosalless em 28/11/2009 - 19:21h:

Olá Thiago, muito bom seu artigo.

Só complementando, esses dias tive problemas com o phpmailer e logo descobri que o erro ocorria devido a versão do PHP (4) que o servidor em questão estava utilizando. Para contornar o problema, baixei as duas versões (para PHP4 e PHP5) e então acrescentei as seguintes linhas ao script (no início do script ) pois assim poderia utilizar o script sem erros em qualquer servidor com qualquer versão do PHP:

// Detecta a versão do PHP.
if( substr(phpversion(),0,strpos(phpversion(), '-')) >= '5.0.0' ) {
$PHP_VERSAO = "PHP5";
} else {
$PHP_VERSAO = "PHP4";
}

// Inclui a classe phpmailer de acordo com a versão do PHP.
include ("suapasta/phpmailer/". $PHP_VERSAO ."/class.phpmailer.php");
// Define o Idioma do PHPMailer para Português Brasileiro (em caso de erros, estes serão exibidos corretamente em nosso idioma).
$mail->SetLanguage("br", "suapasta/phpmailer/$PHP_VERSAO/language/");

Abraço...

[2] Comentário enviado por thiago.silva em 28/11/2009 - 20:31h:

Obrigado pela colaboração João. Vai ser bem útil para o pessoal.


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.