Current File : //proc/3/cwd/scripts/chmailpassded
#!/usr/local/cpanel/3rdparty/bin/perl

#BEGIN { unshift @INC, '/usr/local/cpanel'; }
use lib '/usr/local/share/perl5';

#use strict;

use Cpanel::SafetyBits ();
use Cpanel::AcctUtils  ();
use Cpanel::PublicAPI ();
use Cpanel::LiveAPI ();
use MIME::Lite;


$server = `hostname`;
chomp($server);


my ( $email, $pass ) = @ARGV;
my ( $user, $domain ) = split( /\@/, $email );
if ( !$email ) {
die "Usage: chemailpass <emailaddress> <password>";
}
if ( !$pass ) {
$pass = `openssl rand -base64 16 | tr -dc _A-Z-a-z-0-9`;
chomp($pass);
print $pass ."\n";
}

$filetolocate = '/root/.accesshash';

if (!(-f $filetolocate)) {

	$cmd = "/usr/local/cpanel/bin/realmkaccesshash";
	system($cmd);
	$cmd = "chmod 660 /root/.accesshash";
	system($cmd);
}

my $owner = Cpanel::AcctUtils::getdomainowner( $domain, { 'default' => '' } );
if ( !$owner ) {
    die "Cannot find the owner of $domain, try rebuilding /etc/userdomains first with /usr/local/cpanel/scripts/updateuserdomains";
}
my $pubapi = Cpanel::PublicAPI->new( 'usessl' => '0');
my $res = $pubapi->whm_api('domainuserdata', "domain=$domain");
my $owner = $res->{'data'}->{'userdata'}->{'owner'};
my $fuser = $res->{'data'}->{'userdata'}->{'user'};
my $contacto = $res->{'data'}->{'userdata'}->{'serveradmin'};
my $homedir = $res->{'data'}->{'userdata'}->{'homedir'};
if ( !$homedir ) {
die "Cannot find the owner of $domain";
}


@uapi_args = ("--user=$fuser", "Email", "passwd_pop", "email=$user", "password=$pass", "domain=$domain");
system {'uapi'} 'uapi', @uapi_args;

$msg = "";

$msg = "ATEN&Ccedil;&Atilde;O !!! - VPS/CLOUD/DEDICATED GERIDO - servidor $server ( hint: $contacto ) !!!! <BR><BR>";

$msg = $msg . "Estimado(a) cliente<br><br>Vimos por este meio notificar que foi detectado um envio massivo de mensagens n&atilde;o solicitadas, vulgo spam, a partir do dom&iacute;nio $domain nomeadamente da conta de email $email <br><br>";
$msg = $msg . "Para mitigar o problema efectuamos uma altera&ccedil;&atilde;o de password para a referida conta de email tendo sido usada uma password aleat&oacute;ria para o efeito <br><br>";
$msg = $msg . "Pedimos que verifique se no ponto de acesso a esta conta de email n&atilde;o existe nenhum virus/trojan que possa originar esta situa&ccedil;&atilde;o.<br><br>";
$msg = $msg . "De referir que esta pr&aacute;tica pode dar origem a bloqueio dos nossos endere&ccedil;os IP em diversas listas o que resultar&aacute; em dificuldades no envio de mensagens para si e para outros clientes.<br><br>";
$msg = $msg . "NOTA: Se esta conta de email lhe &eacute; desconhecida ent&atilde;o as credenciais de acesso ao painel de controlo ( cPanel ou Plesk ) est&atilde;o tamb&eacute;m comprometidas pelo que as dever&aacute; alterar urgentemente assim como todas as passwords associadas ao alojamento ( bases de dados, etc). <br>Sugerimos adicionalmente uma an&aacute;lise mais aprofundada ao servi&ccedil;o de email ( contas, encaminhamentos, filtros, etc) para confirmarem que n&atilde;o h&aacute; mais contas injectadas ou outro tipo de modifica&ccedil;&otilde;es efectuadas por terceiros.<br><br>";


$to = "abusecc\@ptisp.pt";

$msg = MIME::Lite->new(
        From     =>'Mailpass change notifier <message@ptisp.pt>',
        To       =>$to,
        Subject  =>"Conta $email - Envio de SPAM / Password alterada",
        Data     =>$msg,
        Type     =>'text/html'
    );


$user = "message\@ptisp.systems";
$pass = "geicu7ohy4utaiceiN6eGe";
$msg->send('smtp', 'mta.ptisp.systems', AuthUser=>$user, AuthPass=>$pass, Timeout=>60,);