acs_mail_lite::inbound_cache_hit_p (private)
acs_mail_lite::inbound_cache_hit_p email_uid uidvalidity \ mailbox_host_name
Defined in packages/acs-mail-lite/tcl/email-inbound-procs.tcl
Check email unique id (UID) against history in table. If already exists, returns 1 otherwise 0. Adds checked case to cache if not already there. uidvalidity is defined by imap RFC 3501 2.3.1.1 https://tools.ietf.org/html/rfc3501#section-2.3.1.1 Other protocols have an analog mechanism, or one can be made locally to be equivalent in use.
- Parameters:
- email_uid (required)
- uidvalidity (required)
- mailbox_host_name (required)
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
Source code: set hit_p 0 set src_ext $mailbox_host_name append src_ext "-" $uidvalidity set aml_src_id "" db_0or1row -cache_key aml_in_src_id_${src_ext} acs_mail_lite_email_src_ext_id_map_r1 { select aml_src_id from acs_mail_lite_email_src_ext_id_map where src_ext=:src_ext } if { $aml_src_id eq "" } { set aml_src_id [db_nextval acs_mail_lite_in_id_seq] db_dml acs_mail_lite_email_src_ext_id_map_c1 { insert into acs_mail_lite_email_src_ext_id_map (aml_src_id,src_ext) values (:aml_src_id,:src_ext) } } set aml_email_id "" db_0or1row acs_mail_lite_email_uid_id_map_r1 { select aml_email_id from acs_mail_lite_email_uid_id_map where uid_ext=:email_uid and src_ext_id=:aml_src_id } if { $aml_email_id eq "" } { set aml_email_id [db_nextval acs_mail_lite_in_id_seq] db_dml acs_mail_lite_email_uid_id_map_c1 { insert into acs_mail_lite_email_uid_id_map (aml_email_id,uid_ext,src_ext_id) values (:aml_email_id,:email_uid,:aml_src_id) } } else { set hit_p 1 } return $hit_pXQL Not present: PostgreSQL, Oracle Generic XQL file: packages/acs-mail-lite/tcl/email-inbound-procs.xql