Enviar email com o PHP
Filed Under (PHP) by Cristian Trentin on 25-06-2009
Muitos desenvolvedores fazem uso da função mail
do PHP para o envio de e-mail, já a galera da programação Orientada a Objetos monta suas classes de envio.
Porem não é todo mundo que conhece a classe PHPMailer
, com ela é possível o envio de emails sem autenticação e com autenticação no servidor, ela é simples e muito fácil de usar. Envie anexos em seus email de olhos fechados!
Vamos a um exemplo, lembrando que não vou mostrar como montar um formulário e pegar esses dados por $_POST ou $_GET no PHP, Cristian mas eu não sei fazer isso! Não sabia, aqui você irá aprender
!
Usando o PHPMailer
/**********************************************************************
* Arquivo: CONTATO-ENVIAR.php *
* Data: 12/06/2009 *
* Autor: Cristian Trentin - admderede@gmail.com *
**********************************************************************/
//Requere o arquivo de Configuracao do Sistema
require_once("include/class.phpmailer.php")/
$nome = isset($_POST['nome']) ? trim(addslashes($_POST['nome'])) : '';
$email = isset($_POST['email']) ? trim(addslashes($_POST['email'])) : '';
$assunto = isset($_POST['assunto']) ? trim(addslashes($_POST['assunto'])) : '';
$msg = isset($_POST['msg']) ? trim(addslashes($_POST['msg'])) : '';
$phpMailer = new PHPMailer();
$phpMailer->SetLanguage("br");
$phpMailer->IsMail(); //Seta o metodo de envio dessa msg, a mail é padrão não precisa nem setar
$phpMailer->IsHTML(true); //Passando HTML true, isso permite usar HTML no corpo do email, pois o PHPMailer monta o Header da msg diferente do padrão
$phpMailer->From = $email; //Seta email remetente
$phpMailer->FromName = $nome; //Seta nome remetente
$phpMailer->AddAddress("contato@cristiantrentin.com.br"); //Seta destino da msg, aqui pode ser passado 'N' emails de destino
$phpMailer->AddReplyTo("contato@cristiantrentin.com.br"); //Responder para
$phpMailer->Subject = 'Mensagem do Site - '.$assunto; //Monta assunto da msg
$phpMailer->Body = $msg; //Seta a msg
//Verifica o envio
if( $Email->Send() ){
print 'Mensagem enviada, aguarde nosso contato.';
}else{
print 'Mensagem não enviada, tente novamente daqui alguns segundos.';
}
?>
*Lembrando que o código acima só irá funcionar se hospedado.
Mas e quando precisamos enviar emails autenticados com o SMTP?
/********************************************************************** //Requere o arquivo de Configuracao do Sistema require_once('../class.phpmailer.php'); $mail = new PHPMailer(); $phpMailer->IsSMTP(); // seta que o envio é por SMTP $phpMailer->Port = 25; // seta a porta de conexão //Dados Remetente $phpMailer->AddReplyTo("contato@cristiantrentin.com.br"); //responder para //Destinatario $phpMailer->Subject = "TESTE SMTP"; //assunto $phpMailer->Body = 'Esse é um teste de envio'; $phpMailer->AddAttachment("relatorio.pdf"); // anexo if( $phpMailer->Send() ) ?>
* Arquivo: CONTATO-ENVIAR.php *
* Data: 12/06/2009 *
* Autor: Cristian Trentin - admderede@gmail.com *
**********************************************************************/
require_once("include/class.phpmailer.php")/
$phpMailer->Host = "mail.seudominio.com.br"; // SMTP server
$phpMailer->SMTPAuth = true; // Habilita a autenticação
$phpMailer->Username = "seuemail@seudominio.com.br"; // usuario de conexão com o SMTP
$phpMailer->Password = "senha"; // senha do usuario conexão com o SMTP
$phpMailer->From = 'Cristian';
$phpMailer->FromName = 'contato@cristiantrentin.com.br';
$phpMailer->AddAddress('email@destino.com.br');
print 'Msg enviada';
else
print 'Msg não enviada, tente novamente';
Também é possível o envio de email autenticados usando o Gmail
, só lembrando você de habilitar no php.ini a extension ‘;extension=php_openssl.dll’.
Links interessantes
Bom pessoal é isso, para quem quer dar uma estudada ainda de uma procurada em envio de emails via socket, uma maneira uma pouco mais complexa para o envio de emails, lembrando apenas que o PHPMailer já faz isso para você.
*A Indentação
do código ficou estranha com esse plugin de code que estou usando, vou resolver isso logo logo…
[]s


Não testei, mas algo me diz que isso vai salvar minha vida hehe
[]’s
Fala @rochester, realmente a PHP Mailer é excelente.
Boa tarde,
Coloquei um código parecido com esses em meu Site, para que o usuário entre em contato. Mas gostaria que ele tivesse o seguinte comportamento: Não enviasse o email se o usuário não colocasse informações em alguns desses campos. Alguém poderia me ajudar?
Desde já agradeço,
Leandro
Olá Leandro, faça uma busca no Google por validação JavaScript.
cara, eu tambem uso o php mailer, mas estou com um sério problema. nao consigo enviar e-mail para e- mails do terra. ;/ alguem tem uma solução:?