Linux slogan
Visite também: BR-Linux.org · Dicas-L · NoticiasLinux · SoftwareLivre.org · UnderLinux · BestLinux



» Screenshot
Linux: Novo GIMP 2.0
Por nelsonvn
» Login
Login:
Senha:

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

Esqueci minha senha

» Wallpaper
Linux: Goot root ?
Por rogermdl

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, 24493 pontos Homepage:
[ Hits: 952 ]

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 Configurando compartilhamento simples no Samba
   Dica Linux recomendada Compartilhamento no Samba com permissão de grupo
   Dica Linux recomendada Blog sobre o Linux
   Dica Linux recomendada Utilização do cron no Linux
   Dica Linux recomendada Usando o dicionário ispell

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 - Copyleft 2002-2009 Viva o Linux.com.br

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.