NAME FML::Header - header manipulators. SYNOPSIS $header = use FML::Header \@header; $header->add('X-ML-Info', "mailing list name"); $header->delete('Return-Receipt-To'); $header->replace(field, value); DESCRIPTION "FML::Header" is an adapter for "Mail::Header" class (See "CPAN" for more details). "Mail::Header" is the base class. METHODS Methods defined in "Mail::Header" are available. For example, "modify()", "mail_from()", "fold()", "extract()", "read()", "empty()", "header()", "header_hashref()", "add()", "replace()", "combine()", "get()", "delete()", "count()", "print()", "as_string()", "fold_length()", "tags()", "dup()", "cleanup()", "unfold()". CAUTION: Pay attention! "FML::Header" overloads "get()" to remove the trailing "\n". new() constructor. forward the request up to superclass "Mail::header::new()". get($key) return the value of "Mail::Header::get($key)" but without the trailing "\n". set($key, $value) alias of "Mail::Header::set($key, $value)". address_cleanup(address) clean up given "address". This method parses the given address by "Mail::Address::parse()", remove < and > and return the result if the result is not empty. return the raw "<>" if the specified address is "<>" since we should not remove <> from "<>" special address. data_type() return the "type" defined in the header's Content-Type field. For example, "text/plain", "mime/multipart" and et. al. FML SPECIFIC METHODS add_fml_ml_name($config, $rw_args) add X-ML-Name: field. add_fml_traditional_article_id($config, $rw_args) add X-Mail-Count: field. add_fml_article_id($config, $rw_args) add X-ML-Count: field. add_software_info($config, $rw_args) add X-MLServer: and List-Software: field. "MIME::Lite" object as a $rw_args->{ message } can be handled when $rw_args->{type} is 'MIME::Lite'. add_rfc2369($config, $rw_args) add List-* series defined in RFC2369 and RFC2919. "MIME::Lite" object as a $rw_args->{ message } can be handled when $rw_args->{type} is 'MIME::Lite'. add_x_sequence($config, $rw_args) add X-Sequence field. add_message_id($config, $rw_args) add Message-Id field. rewrite_subject_tag($config, $rw_args) =head2 rewrite_article_subject_tag($config, $rw_args) add subject tag like [ML_NAME:00010] e.g. [elena:00010] for elena ML. The actual function definitions exist in "Mail::Message::Subject". rewrite_reply_to replace "Reply-To:" with this ML's address for post. add reply-to: if not specified. rewrite_reply_to_enforce_article_post_address enforce replacement of "Reply-To:" with this ML's address for post. rewrite_errors_to replace "Errors-To:" with this ML's address for post. add errors-to: if not specified. rewrite_date replace original "Date:" to "X-Date:". and now fml process time add to "Date:". rewrite_stardate add/rewrite startrek stardate if needed. rewrite_precedence add/rewrite Precedence: field if needed. rewrite_received replace original "Received:" to "X-Received:". delete_unsafe_header_fields($config, $rw_args) remove header fields defiend in $unsafe_header_fields. $unsafe_header_fields is a list of keys. The keys are space separeted. unsafe_header_fields = Return-Receipt-To MISCELLANEOUS UTILITIES delete_subject_tag_like_string($string) remove subject tag like the string given as $string. extract_message_id_references() return message-id list (ARRAY REFERENCE) extracted from the header ($self). It extracts message-id(s) from In-Reply-To: and References: fields. FILTERING FUNCTIONS check_message_id($config, $rw_args) check whether message-id is unique or not. If the message-id is found in the past message-id cache, the injected message must causes a mail loop. check_x_ml_info($config, $rw_args) The injected message loops if x-ml-info: has our own "article_post_address" address. check_list_post($config, $rw_args) The injected message loops if list-post: has our own "article_post_address" address. SEE ALSO Mail::Header CODING STYLE See "http://www.fml.org/software/FNF/" on fml coding style guide. AUTHOR Ken'ichi Fukamachi COPYRIGHT Copyright (C) 2001,2002,2003,2004,2005,2006,2007,2008 Ken'ichi Fukamachi All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. HISTORY FML::Header first appeared in fml8 mailing list driver package. See "http://www.fml.org/" for more details.