Enviar e-mail usando Pear PHP com autenticação SMTP

Devido ao grande número de spams que são enviados diariamente, gerando um grande consumo de recursos dos servidores, além da frustração e perda de tempo dos usuários finais, os servidores de hospedagem estão cada vez mais apertando o cerco contra esse tipo de prática.

Em função disso, é cada vez maior o número de servidores de hospedagem que requerem autenticação para envio de e-mails com scripts.

Pensando nisso, criei esse código para demonstrar como utilizar o PEAR do PHP para autenticar num servidor SMTP e enviar e-mails.

<?
##&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
## Envio de Emails pelo SMTP Autenticado usando PEAR
##&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
# Mais detalhes sobre o PEAR:
# http://pear.php.net/
#
# Mais detalhes sobre o PEAR Mail:
# http://pear.php.net/manual/en/package.mail.mail-mime.php
##&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;

# Faz o include do PEAR Mail.
include (&#8221;Mail.php&#8221;);

# E-mail de destino. Caso seja mais de um destino, crie um array de e-mails.
# *OBRIGATÓRIO*
$recipients = &#8216; endereco@mail.com.br&#8217;;

# Cabeçalho do e-mail.
$headers =
array (
&#8216;From&#8217; => &#8216; endereco@mail.com.br&#8217;, # O &#8216;From&#8217; é *OBRIGATÓRIO*.
&#8216;To&#8217; => &#8216; DESTINATARIO@DominioDestinatario.com&#8217;,
&#8216;Subject&#8217; => &#8216;TITULO DO E-MAIL&#8217;
);

# Utilize esta opção caso deseje definir o e-mail de resposta
# $headers['Reply-To'] = &#8216; EMailDeResposta@DominioDeResposta.com&#8217;;

# Utilize esta opção caso deseje definir o e-mail de retorno em caso de erro de envio
# $headers['Errors-To'] = &#8216; endereco@mail.com.br&#8217;;

# Utilize esta opção caso deseje definir a prioridade do e-mail
# $headers['X-Priority'] = &#8216;3&#8242;; # 1 UrgentMessage, 3 Normal

# Corpo da Mensagem
$body = &#8216;Escreva aqui o texto do seu e-mail&#8217;;

# Parâmetros para o SMTP. *OBRIGATÓRIO*
$params =
array (
&#8216;auth&#8217; => true, # Define que o SMTP requer autenticação.
&#8216;host&#8217; => &#8217;smtp.dominio.com.br&#8217;, # Servidor SMTP
&#8216;username&#8217; => &#8216;endereco@mail.com.br&#8217;, # Usuário do SMTP
&#8216;password&#8217; => &#8216;12345&#8242; # Senha do seu MailBox. );

# Define o método de envio! queremos &#8217;smtp&#8217;. *OBRIGATÓRIO*
$mail_object =& Mail::factory(&#8217;smtp&#8217;, $params);

# Envia o email. Se não ocorrer erro, retorna TRUE caso contrário, retorna um # objeto PEAR_Error. Para ler a mensagem de erro, use o método &#8216;getMessage()&#8217;.
$result = $mail_object->send($recipients, $headers, $body);
if (PEAR::IsError($result)) {
echo &#8220;ERRO ao tentar enviar o email. (&#8221; . $result->getMessage(). &#8220;)&#8221;;
} else {
echo &#8220;Email enviado com sucesso!&#8221;;

} ?>

Nós queremos saber sua opinião aqui