Mercurial > hg > rc1
diff plugins/show_additional_headers/show_additional_headers.php @ 0:1e000243b222
vanilla 1.3.3 distro, I hope
author | Charlie Root |
---|---|
date | Thu, 04 Jan 2018 15:50:29 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/show_additional_headers/show_additional_headers.php Thu Jan 04 15:50:29 2018 -0500 @@ -0,0 +1,50 @@ +<?php + +/** + * Show additional message headers + * + * Proof-of-concept plugin which will fetch additional headers + * and display them in the message view. + * + * Enable the plugin in config.inc.php and add your desired headers: + * $config['show_additional_headers'] = array('User-Agent'); + * + * @author Thomas Bruederli + * @license GNU GPLv3+ + */ +class show_additional_headers extends rcube_plugin +{ + public $task = 'mail'; + + function init() + { + $rcmail = rcmail::get_instance(); + if ($rcmail->action == 'show' || $rcmail->action == 'preview') { + $this->add_hook('storage_init', array($this, 'storage_init')); + $this->add_hook('message_headers_output', array($this, 'message_headers')); + } else if ($rcmail->action == '') { + // with enabled_caching we're fetching additional headers before show/preview + $this->add_hook('storage_init', array($this, 'storage_init')); + } + } + + function storage_init($p) + { + $rcmail = rcmail::get_instance(); + if ($add_headers = (array)$rcmail->config->get('show_additional_headers', array())) + $p['fetch_headers'] = trim($p['fetch_headers'].' ' . strtoupper(join(' ', $add_headers))); + + return $p; + } + + function message_headers($p) + { + $rcmail = rcmail::get_instance(); + foreach ((array)$rcmail->config->get('show_additional_headers', array()) as $header) { + if ($value = $p['headers']->get($header)) + $p['output'][$header] = array('title' => $header, 'value' => $value); + } + + return $p; + } +}