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: # https://pear.php.net/ # # Mais detalhes sobre o PEAR Mail: # https://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!”; } ?>