Utilizando a classe phpmailer como alternativa a função mail() do PHP
Dica publicada em Linux / Introdução
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:
Vamos agora enviar um email simples em modo texto:
Primeiro vamos inicializar a parte padrão do email da mesma maneira que na anterior:
Agora sim vamos as novidades:
É isso aí pessoal, agradeço por estarem lendo este texto e qualquer dúvida é só perguntar.
Espero que este tenha sido útil.
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:
//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;
}
?>
$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:
//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";
?>
$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:
//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 = "
//e mandamos enviar:
if(!$mail->Send())
{
//Exibimos o erro ocorrido
echo $mail->ErrorInfo;
}
?>
$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 = "
Este é um texto em HTML
";//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.
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...