Olá, caro leitor. Hoje vou mostrar a você como enviar e-mail autenticado pelo servidor, assim você evita de enviar via a função mail do PHP, que vários servidores bloqueiam quando se é muito utilizada. Bom, para isto precisaremos ter uma conta de e-mail criada no servidor, vamos precisar saber:

  • usuário SMTP;
  • senha do usuário SMTP;
  • servidor SMTP;

Com estas informações teremos condições de enviar o e-mail autenticado. Eu tenho uma classe chamada SMTP que está disponível para download abaixo, e tenho uma função que faz a autenticação no servidor e o envio, conforme abaixo:

function sendMail($para,$de,$mensagem,$assunto)
{
//DADOS SMTP
$smtp = "mail.dominio.com.br";
$usuario = "[email protected]";
$senha = "senha";
require_once './smtp/smtp.php';

$mail = new SMTP;
$mail->Delivery('relay');
$mail->Relay($smtp, $usuario, $senha, 25, 'login', false);
$mail->TimeOut(10);
$mail->Priority('high');
$mail->From($de);
$mail->AddTo($para);
$mail->Html($mensagem);

if($mail->Send($assunto))
return true;
else
return false;
}

 

Está função faz a instanciação do objeto $mail que vem da classe SMTP. Ela faz o seguinte:

  • $mail = new SMTP; //INSTANCIA O OBJETO
  • $mail->Delivery('relay'); //DEFINE MÉTODO DE LOGIN
  • $mail->Relay($smtp, $usuario, $senha, 25, 'login', false); // FAZ O LOGIN
  • $mail->TimeOut(10); //DEFINE TEMPO DE TIMEOUT (ESPERA CASO FALHE LOGIN)
  • $mail->Priority('high'); //DEFINE PRIORIDADE DO E-MAIL
  • $mail->From($de); //DEFINE REMETENTE
  • $mail->AddTo($para); //DEFINE DESTINATÁRIO
  • $mail->Html($mensagem); //DEFINE MENSAGEM

Após isto ela efetua o envio, e retorna true ou false, conforme envio. Para utilizar está função você deve invocá-la da seguinte forma:

sendMail($para,$de,$mensagem,$assunto);

 

Passando por argumento:

  • $para = e-mail destino;
  • $de = e-mail origem;
  • $mensagem = mensagem do e-mail;
  • $assunto = assunto do e-mail.


O arquivo da classe encontra-se para download aqui.