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.
<?
##—————————————————
## Envio de Emails pelo SMTP Autenticado usando PEAR
##—————————————————
# 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
##—————————————————
# Faz o include do PEAR Mail.
include (”Mail.php”);
# E-mail de destino. Caso seja mais de um destino, crie um array de e-mails.
# *OBRIGATÓRIO*
$recipients = ‘ endereco@mail.com.br’;
# Cabeçalho do e-mail.
$headers =
array (
‘From’ => ‘ endereco@mail.com.br’, # O ‘From’ é *OBRIGATÓRIO*.
‘To’ => ‘ DESTINATARIO@DominioDestinatario.com’,
‘Subject’ => ‘TITULO DO E-MAIL’
);
# Utilize esta opção caso deseje definir o e-mail de resposta
# $headers['Reply-To'] = ‘ EMailDeResposta@DominioDeResposta.com’;
# Utilize esta opção caso deseje definir o e-mail de retorno em caso de erro de envio
# $headers['Errors-To'] = ‘ endereco@mail.com.br’;
# Utilize esta opção caso deseje definir a prioridade do e-mail
# $headers['X-Priority'] = ‘3′; # 1 UrgentMessage, 3 Normal
# Corpo da Mensagem
$body = ‘Escreva aqui o texto do seu e-mail’;
# Parâmetros para o SMTP. *OBRIGATÓRIO*
$params =
array (
‘auth’ => true, # Define que o SMTP requer autenticação.
‘host’ => ’smtp.dominio.com.br’, # Servidor SMTP
‘username’ => ‘endereco@mail.com.br’, # Usuário do SMTP
‘password’ => ‘12345′ # Senha do seu MailBox. );
# Define o método de envio! queremos ’smtp’. *OBRIGATÓRIO*
$mail_object =& Mail::factory(’smtp’, $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 ‘getMessage()’.
$result = $mail_object->send($recipients, $headers, $body);
if (PEAR::IsError($result)) {
echo “ERRO ao tentar enviar o email. (” . $result->getMessage(). “)”;
} else {
echo “Email enviado com sucesso!”;
} ?>