Envio de email utilizando a classe PHPMailer
Cenário
De início você pode estar pensando: "mas porquê vou incluir essa biblioteca se o PHP já possui a função mail() nativamente ?".
Através da classe PHPMailer, temos uma solução de envio de email mais robusta e com maiores funcionalidades, dentre elas a possibilidade de incluir anexos à mensagem, incluir CCs e CCOs, definir tamanho padrão para quebra de palavras (wordwrap) e utilizar um servidor SMTP, sendmail ou QMail para o envio.
O fato de podermos especificar como será feito o envio é particularmente útil no caso de hospedarmos uma aplicação em um ambiente que não possua um servidor de email integrado (cenário incomum mas que pode vir a ocorrer). Nesse caso, é possível, ainda, definirmos um host padrão para envio e um outro redundante, no caso de o primeiro falhar.
Onde encontrar
O download da biblioteca pode ser feito em: http://sourceforge.net/projects/phpmailer/files/.
Nesse endereço existem versões para o PHP 4 e PHP 5.
Exemplo de utilização (adaptado do leiame do projeto):
Configurações de envio
<?php require("class.phpmailer.php"); $mail = new PHPMailer(); // configuramos o mailer para utilizar SMTP $mail->IsSMTP(); // especificamos o servidor principal e o reserva $mail->Host = "smtp1.example.com;smtp2.example.com"; // ativamos a autenticação no SMTP $mail->SMTPAuth = true; // usuário(s) de SMTP $mail->Username = "usuario_smtp1;usuario_smtp2"; // senha(s) de SMTP $mail->Password = "senha_smtp1;senha_smtp2";
Cabeçalho e conteúdo da mensagem
/* podemos utilizar qualquer idioma presente na pasta languages, facilitando uma eventual depuração de erros */ $mail->SetLanguage("br"); $mail->From = "from@example.com"; $mail->FromName = "Mailer"; // o nome é opcional $mail->AddAddress("josh@example.net", "Josh Adams"); // quebra de palavra em 50 caracteres $mail->WordWrap = 50; // anexo - nome é opcional $mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // configuramos o formato de email como HTML $mail->IsHTML(true); $mail->Subject = "Este é o assunto"; $mail->Body = "Este é o corpo da mensagem HTML <b>em negrito!</b>"; $mail->AltBody = "Este é o texto puro para clientes de email que não suportam HTML";
Envio do email
if(!$mail->Send()) { echo "A mensagem não pôde ser enviada.<br/>"; echo "Erro: " . $mail->ErrorInfo; exit; } echo "Mensagem enviada !"; ?>
2 Comentário para “Envio de email utilizando a classe PHPMailer”
Deixe um comentário |


ola…. no meu arquivo esta dando este erro Language string failed to load: connect_host pode me dizer oq faser??
Olá Weslley,
Ele não está conseguindo localizar o arquivo de idioma…
Por padrão, ele busca na pasta “phpmailer/language” por arquivos do tipo “phpmailer.lang-X.php” (onde “X” refere-se à abreviação do idioma que foi definido no setLanguage).
Verifique se realmente existe um arquivo com o idioma definido nessa pasta.
Ainda, caso seja necessário definir um outro diretório para os arquivos de idioma, você pode utilizar:
SetLanguage('br', 'diretório')