acs_mail_lite::inbound_filters (private)

 acs_mail_lite::inbound_filters [ -headers_arr_name headers_arr_name ]

Defined in packages/acs-mail-lite/tcl/email-inbound-procs.tcl

Flags to ignore an inbound email that does not pass filters. Returns 1 if email should be ignored, otherwise returns 0. Headers and values are not alphanumeric case sensitive. Inbound filters are dynamically updated via acs_mail_lite::sched_parameters. Instead of rejecting, an email can be filtered to low priority by using acs_mail_lite::inbound_prioritize parameters

Switches:
-headers_arr_name
(optional)
See Also:

Partial Call Graph (max 5 caller/called nodes):
%3 acs_mail_lite::email_type acs_mail_lite::email_type (public) acs_mail_lite::inbound_filters acs_mail_lite::inbound_filters acs_mail_lite::email_type->acs_mail_lite::inbound_filters acs_mail_lite::sched_parameters acs_mail_lite::sched_parameters (public) acs_mail_lite::inbound_filters->acs_mail_lite::sched_parameters

Testcases:
No testcase defined.
Source code:
    upvar 1 $headers_arr_name h_arr
    set reject_p 0
    set headers_list [array names h_arr]

    set p_lists [acs_mail_lite::sched_parameters]

    # For details on these filters, see tables:
    #      acs_mail_lite_ui.reject_on_hit
    #                      .reject_on_miss

    # h = hit
    set h_list [dict values $p_lists reject_on_hit]
    set h_names_list [list ]
    foreach {n v} $h_list {
        set n_idx [lsearch -nocase -exact $headers_list $n]
        if { $n_idx > -1 } {
            set h [lindex $n_idx]
            lappend h_names_list $h
            set vh_arr(${h}$v
        }
    }
    set h_names_ct [llength $h_names_list]
    set i 0
    while { !$reject_p && $i < $h_names_ct } {
        set h [lindex $h_names_list $i]
        if { [string match -nocase $vh_arr(${h}$h_arr(${h})] } {
            set reject_p 1
        }

        incr i
    }


    # m = miss
    set m_list [dict values $p_lists reject_on_miss]
    set m_names_list [list ]
    foreach {n v} $m_list {
        set n_idx [lsearch -nocase -exact $headers_list $n]
        if { $n_idx > -1 } {
            set h [lindex $n_idx]
            lappend m_names_list $h
            set vm_arr(${h}$v
        }
    }
    set m_names_ct [llength $m_names_list]
    set i 0
    while { !$reject_p && $i < $m_names_ct } {
        set h [lindex $m_names_list $i]
        if { ![string match -nocase $vm_arr(${h}$h_arr(${h})] } {
            set reject_p 1
        }

        incr i
    }

    return $reject_p
XQL Not present:
PostgreSQL, Oracle
Generic XQL file:
packages/acs-mail-lite/tcl/email-inbound-procs.xql

[ hide source ] | [ make this the default ]
Show another procedure: