acs_mail_lite::inbound_queue_pull_one (private)

 acs_mail_lite::inbound_queue_pull_one -h_array_name h_array_name \
    -p_array_name p_array_name -aml_email_id aml_email_id \
    [ -mark_processed_p mark_processed_p ] \
    [ -legacy_array_name legacy_array_name ]

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

Puts email referenced by aml_email_id from the inbound queue into array of h_array_name and p_array_name for use by registered callbacks. Arrays are repopulated with values in the same manner that acs_mail_lite::inbounde_queue_insert receives them. See below for details. When complete, marks the email in the queue as processed, if mark_processed_p is 1. Array content corresponds to these tables:

    h_arr($name) $value         acs_mail_lite_ie_headers

    Some indexes match fields of table acs_mail_lite_from_external:

    h_arr(aml_email_id)     assigned by acs_mail_lite::inbound_queue_insert
    h_arr(aml_to)           to email including any label
    h_arr(aml_to_addrs)     to_email_addrs
    h_arr(aml_from)         from email including any label
    h_arr(aml_from_addrs)   from_email_addrs
    h_arr(aml_priority)     priority
    h_arr(aml_subject)      email subject (normalized index reference).
    h_arr(aml_msg_id)       email message-id or msg-id's cross-reference
                            see acs_mail_lite_msg_id_map.msg_id
    h_arr(aml_size_chars)   size_chars

    Some headers are transferred from the email generation process.
    See acs_mail_lite::unique_id_create for details:

    h_arr(aml_package_id)
    h_arr(aml_party_id)
    h_arr(aml_object_id)
    h_arr(aml_other)


    Some headers are internally generated during input:

    h_arr(aml_type)         Type of email from acs_mail_lite::email_type
    h_arr(aml_received_cs)  Time received in seconds since Tcl epoch
    h_arr(aml_datetime_cs)  Time unique_id generated in seconds since Tcl epoch
    h_arr(aml_processed_p)  processed_p
    h_arr(aml_priority)     a priority number assigned to email.

    Email parts (of body) are kept in a separate array:

    p_arr($section_ref,<field>)  acs_mail_lite_ie_parts (content of a part)
    p_arr($section_ref,nv_list)  acs_mail_lite_part_nv_pairs
    p_arr(section_ref_list) list of section_refs


    where index is section_ref based on section_ref, and
    where top most section_ref is a natural number as
    there may be more than one tree.

    Specifically, for p_arr array:

    content        is  p_arr($section_ref,content)
    c_type         is  p_arr($section_ref,c_type)
    filename       is  p_arr($section_ref,filename)
    c_filepathname is  p_arr($section_ref,c_filepathname)

    where:
    c_type is content-type header
    filename is filename of an attachment in email
    c_filepathname is the filepathname within the system.

    Each section may have headers:

    To avoid any header-name collision with content, c_type etc,
    headers are supplied in a name_value_list only:

    list of headers by section is  p_arr($section_ref,name_value_list)
    list of section_refs       is  p_arr(section_ref_list)

    For direct compatibility with legacy email systems that used:
    

acs_mail_lite::email_parse, a compatible array is passed to legacy_array_name, if parameter is used.

Switches:
-h_array_name
(required)
-p_array_name
(required)
-aml_email_id
(required)
-mark_processed_p
(defaults to "1") (optional)
-legacy_array_name
(optional)
See Also:
  • acs_mail_lite::email_parse

Partial Call Graph (max 5 caller/called nodes):
%3 acs_mail_lite::inbound_queue_pull acs_mail_lite::inbound_queue_pull (private) acs_mail_lite::inbound_queue_pull_one acs_mail_lite::inbound_queue_pull_one acs_mail_lite::inbound_queue_pull->acs_mail_lite::inbound_queue_pull_one acs_mail_lite::section_ref_of acs_mail_lite::section_ref_of (private) acs_mail_lite::inbound_queue_pull_one->acs_mail_lite::section_ref_of db_list_of_lists db_list_of_lists (public) acs_mail_lite::inbound_queue_pull_one->db_list_of_lists

Testcases:
No testcase defined.
[ show source ]
Show another procedure: