HEX
Server: LiteSpeed
System: Linux atali.colombiahosting.com.co 5.14.0-570.12.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 13 06:11:55 EDT 2025 x86_64
User: coopserp (1713)
PHP: 8.2.29
Disabled: dl,exec,passthru,proc_open,proc_close,shell_exec,memory_limit,system,popen,curl_multi_exec,show_source,symlink,link,leak,listen,diskfreespace,tmpfile,ignore_user_abord,highlight_file,source,show_source,fpaththru,virtual,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setid,posix_times,posix_ttyname,posix_uname,proc_get_status,proc_nice,proc_terminate
Upload Files
File: //proc/thread-self/root/proc/thread-self/root/etc/mail/spamassassin/plugins/CH_FromSpoof.pm
package CH_FromSpoof;
use Mail::SpamAssassin::Plugin;

our @ISA = qw(Mail::SpamAssassin::Plugin);

sub new {
    my ( $class, $mailsa ) = @_;

    # the usual perlobj boilerplate to create a subclass object
    $class = ref($class) || $class;
    my $self = $class->SUPER::new($mailsa);
    bless( $self, $class );

    # then register an eval rule, if desired...
    $self->register_eval_rule("check_likespoof");

    # and return the new plugin object
    return $self;
}
sub check_likespoof {
    my ( $self, $msg ) = @_;
    my $cadenaFrom = lc( $msg->get('From') );
    $cadenaFrom =~ s/"/ /g;
    $cadenaFrom =~ s/</ /g;
    $cadenaFrom =~ s/>/ /g;
    $cadenaFrom =~ s/\(/ /g;
    $cadenaFrom =~ s/\)/ /g;
    $cadenaFrom =~ s/ +/ /g;
    $cadenaFrom =~ s/^ //;
    $cadenaFrom =~ s/ $//;
    my @palabrasFrom = split( ' ', $cadenaFrom );

    $cantidadCorreos=0;
    $unicoCorreo="";
    $esSpoof=0;

foreach $palabraActual (@palabrasFrom){
        my @count = ($palabraActual =~ /@/g);
        if (@count == 1) {
                $cantidadCorreos++;
                if ($unicoCorreo eq ""){
                        $unicoCorreo=$palabraActual;
                }else{
                        if($palabraActual ne $unicoCorreo){
                                $esSpoof=1;
                                last;
                        }
                }
        }
}

if($cantidadCorreos == 0){
        $esSpoof=1;
}

    Mail::SpamAssassin::Plugin::dbg(
        "CH_FromSpoof: Comparing $cadenaFrom"
    );

    if ( $esSpoof == 0) {
        return 0;    #PASS, dont appear spoof
    }else{
        return 1;    #FAIL, is like spoof
    }
}

# This ;1 is important
1;