Esse artigo, segundo da série de artigos de utilização dos pacotes da biblioteca PEAR, vou falar sobre o envio de email através do pacote MAIL, através de SMTP e autenticado.
No meu exemplo, utilizei meu email do GMAIL para autenticar no SMTP, e enviar a mensagem. Você pode utilizar tanto o GMAIL quanto qualquer provedor de email que utilize SMTP autenticado, bastando para isso seguir as configurações.
Instale o pacote MAIL no seu PEAR através do comando "pear install Mail"
Se você não tem acesso ao SSH da máquina, leia meu primeiro artigo sobre como utilizar e instalar a biblioteca PEAR e seus pacotes, clicando aqui
Após instalado o pacote MAIL, em uma página criada com o fim de enviar as mensagens, chamamos o pacote, através de require:
PHP
<?php require_once "Mail.php";www.revistaphp.com.br
Note que não é necessário chamar um local físico para a classe, pois quando você a instala através da linha de comando, o PHP já sabe onde procurá-la.
Feito isso, vamos tratar de enviar os valores básicos de uma mensagem de email, como destinatário, remetente, assunto e corpo da mensagem.:
PHP
$from = "Flávia <fjferr@gmail.com>"; // Remetente da mensagem $to = "Meu destinatário <flavia@flaviajobs.com.br>"; // Destinatário da mensagem $subject = "Meu assunto"; $body = "Olá!\n\n Este é um teste de envio de email através de SMTP!";www.revistaphp.com.br
Informamos também o host, usuário e senha para autenticação:
PHP
$host = "smtp.gmail.com"; // no meu caso, utilizei o smtp do Gmail $username = "fjferr"; // no caso do gmail, utiliza-se o que vem antes da arroba. $password = "senha"; // sua senha do provedorwww.revistaphp.com.br
A parte principal do processo, é através da função Mail::factory da classe Mail do PEAR, efetuar a devida inserção das informações acima nos locais correspondentes, afim de enviar a mensagem sem erro. Isso é feito através de uma array:
PHP
'To' => $to, 'Subject' => $subject); 'auth' => true, 'username' => $username, 'password' => $password));www.revistaphp.com.br
De acordo com todas estas informações, simplesmente chamamos a função "send", para enviar a mensagem:
PHP
$mail = $smtp->send($to, $headers, $body);www.revistaphp.com.br
E finalmente, uma condição de verificação, de que o email foi corretamente enviado. Note que a função PEAR::irError é nativa do PEAR e sempre que houver a necessidade de uma condição de verificação de erro, essa função será chamada.
PHP
if (PEAR::isError($mail)) { } else { }www.revistaphp.com.br
A maioria dos servidores de SMTP, permite o envio autenticado de emails, bastando para isso, que você possua todos os dados, como o host (mail.servidor, smtp.servidor, ip, etc), usuário e senha. Personalize ao seu gosto, tornando o envio dinâmico através de um formulário, etc.
Qualquer dúvida, comente aqui!