Fernando Rafs Posted October 24, 2015 Share Posted October 24, 2015 (edited) Fala pessoal! Segue minha contribuição!. Devido ao endurecimento das regras por parte dos Datacenters ser cada vez maior, no quesito envio de e-mails em Massa/SPAM, implantamos em nossos servidores uma solução (não contra SPAM) mas para evitar o envio excessivo de e-mails para provedores gratuitos como Gmail, Hotmail, Yahoo, entre outros. Muitos clientes possuem várias contas de e-mails e utilizam o redirecionamento de e-mails para estes provedores, porém quando as contas destes clientes mesmo com filtro antispam ativo recebem muitos e-mails, o servidor se encarrega em enviar uma cópia para estes provedores, é onde estes provedores acabam aplicando vários filtros e deixando sua mensagem na fila. Esta solução serve apenas para diminuir a carga de envios para estes provedores, se o cliente desejar ele poderá baixar suas mensagens via POP3 diretamente por estes provedores, como é o caso do Google sem precisar utilizar o redirecionamento. Lembrando que esta solução é aplicada apenas para e-mails de provedores gratuitos, mas você poderá adicionar mais domínios, conforme abaixo: 1. Vá em /usr/local/cpanel/Cpanel e crie um arquivo chamado CustomEventHandler.pm e nele coloque o seguinte conteúdo: package Cpanel::CustomEventHandler; # cpanel12 - CustomEventHandler.pm Copyright(c) 2008 cPanel, Inc. # All rights Reserved. # [email protected] http://cpanel.net # This code is subject to the cPanel license. Unauthorized copying is prohibited use strict; use Cpanel::Logger (); # apiv = apiversion # type = pre,post # module = Cpanel::<modname> # event = the event ie addpop # cfg ref is a hash of the conf variables passed to the event. If its a legacy event, the hash keys are numbered, newer events have names. # dataref = the data returned from the event (post events only) sub event { my ( $apiv, $type, $module, $event, $cfgref, $dataref ) = @_; my $return = 1; if ( ($module eq 'email') && ($event eq 'addforward') ) { my($localpart, $domain) = split(/@/, $cfgref->{'fwdemail'}); if (-f "/etc/forwarder_blocked_domains.txt") { open(BLOCK, "</etc/forwarder_blocked_domains.txt"); while (<BLOCK>) { chomp($_); if ($_ eq $domain) { $return = 0; $Cpanel::CPERROR{$Cpanel::context} = "OPPS! O redirecionamento solicitado para o provedor de e-mail $domain foi recusado pelo servidor. Para evitar problemas relacionados a Blacklists/Bloqueios, onde o IP do Servidor e o seu Dominio ficam impedidos de enviar mensagens para determinados provedores, o redirecionamento para provedores de e-mails gratuitos como GMAIL, HOTMAIL, YAHOO, entre outros foi desativado. Por favor, verifique junto ao suporte ou painel de controle do seu provedor de e-mail gratuito a possibilidade de baixar suas mensagens utilizando POP3."; } } close(BLOCK); } } return $return; } 1; Nota: Você poderá mudar a mensagem que aparecerá no cPanel através da seguinte linha do código acima: $Cpanel::CPERROR{$Cpanel::context} = "OPPS! O redirecionamento solicitado para o provedor de e-mail $domain foi recusado pelo servidor. Para evitar problemas relacionados a Blacklists/Bloqueios, onde o IP do Servidor e o seu Dominio ficam impedidos de enviar mensagens para determinados provedores, o redirecionamento para provedores de e-mails gratuitos como GMAIL, HOTMAIL, YAHOO, entre outros foi desativado. Por favor, verifique junto ao suporte ou painel de controle do seu provedor de e-mail gratuito a possibilidade de baixar suas mensagens utilizando POP3."; 2. Agora vá em /etc e crie o arquivo forwarder_blocked_domains.txt com o seguinte conteúdo: yahoo.com yahoo.com.br gmail.com gmail.com.br hotmail.com hotmail.com.br outlook.com outlook.com.br aol.com googlemail.com msn.com msn.com.br ymail.com ymail.com.br redmail.com Nota: Altere a lista de provedores conforme a sua necessidade. 3. Quando o cliente tentar criar um redirecionamento por exemplo para o Gmail, o redirecionamento não será criado, aparecendo o seguinte alerta: O redirecionamento para os provedores não listados em forwarder_blocked_domains.txt continuará normal, sem qualquer problema. Por favor, antes de colocá-lo em produção recomendo que efetue testes em um servidor de testes, para que possa verificar se este Hook poderá lhe atender e que não trará problemas. Observação 1: Este Hook foi feito utilizando a documentação da própria cPanel. - https://documentation.cpanel.net/display/SDK/Guide+to+Standardized+Hooks+-+Custom+Event+Handlers Observação 2: Peguei alguns códigos incompletos na internet, outros através da própria documentação da cPanel e outros adaptei para a nossa necessidade. Edited October 24, 2015 by Guto 1 Quote Link to comment Share on other sites More sharing options...
Leandro V Posted October 24, 2015 Share Posted October 24, 2015 Obrigado pela contribuição! 0 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.