Show spam aliases #
This commit is contained in:
24
data/web/rc/plugins/show_additional_headers/composer.json
Normal file
24
data/web/rc/plugins/show_additional_headers/composer.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "roundcube/show_additional_headers",
|
||||
"type": "roundcube-plugin",
|
||||
"description": "Proof-of-concept plugin which will fetch additional headers and display them in the message view.",
|
||||
"license": "GPLv3+",
|
||||
"version": "2.0",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Thomas Bruederli",
|
||||
"email": "roundcube@gmail.com",
|
||||
"role": "Lead"
|
||||
}
|
||||
],
|
||||
"repositories": [
|
||||
{
|
||||
"type": "composer",
|
||||
"url": "http://plugins.roundcube.net"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"roundcube/plugin-installer": ">=0.1.3"
|
||||
}
|
||||
}
|
@@ -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;
|
||||
}
|
||||
}
|
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
class ShowAdditionalHeaders_Plugin extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
|
||||
function setUp()
|
||||
{
|
||||
include_once __DIR__ . '/../show_additional_headers.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Plugin object construction test
|
||||
*/
|
||||
function test_constructor()
|
||||
{
|
||||
$rcube = rcube::get_instance();
|
||||
$plugin = new show_additional_headers($rcube->api);
|
||||
|
||||
$this->assertInstanceOf('show_additional_headers', $plugin);
|
||||
$this->assertInstanceOf('rcube_plugin', $plugin);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user