diff options
| author | Tristan Zur <tzur@web.web.ccwn.org> | 2014-03-27 22:27:47 +0100 |
|---|---|---|
| committer | Tristan Zur <tzur@web.web.ccwn.org> | 2014-03-27 22:27:47 +0100 |
| commit | b62676ca5d3d6f6ba3f019ea3f99722e165a98d8 (patch) | |
| tree | 86722cb80f07d4569f90088eeaea2fc2f6e2ef94 /webmail/plugins/additional_message_headers | |
Diffstat (limited to 'webmail/plugins/additional_message_headers')
4 files changed, 130 insertions, 0 deletions
diff --git a/webmail/plugins/additional_message_headers/additional_message_headers.php b/webmail/plugins/additional_message_headers/additional_message_headers.php new file mode 100644 index 0000000..43f9d00 --- /dev/null +++ b/webmail/plugins/additional_message_headers/additional_message_headers.php @@ -0,0 +1,46 @@ +<?php + +/** + * Additional Message Headers + * + * Very simple plugin which will add additional headers + * to or remove them from outgoing messages. + * + * Enable the plugin in config/main.inc.php and add your desired headers: + * $rcmail_config['additional_message_headers'] = array('User-Agent'); + * + * @version @package_version@ + * @author Ziba Scott + * @website http://roundcube.net + */ +class additional_message_headers extends rcube_plugin +{ + function init() + { + $this->add_hook('message_before_send', array($this, 'message_headers')); + } + + function message_headers($args) + { + $this->load_config(); + + $headers = $args['message']->headers(); + $rcube = rcube::get_instance(); + + // additional email headers + $additional_headers = $rcube->config->get('additional_message_headers', array()); + foreach ((array)$additional_headers as $header => $value) { + if (null === $value) { + unset($headers[$header]); + } + else { + $headers[$header] = $value; + } + } + + $args['message']->_headers = array(); + $args['message']->headers($headers); + + return $args; + } +} diff --git a/webmail/plugins/additional_message_headers/config.inc.php.dist b/webmail/plugins/additional_message_headers/config.inc.php.dist new file mode 100644 index 0000000..83ccd86 --- /dev/null +++ b/webmail/plugins/additional_message_headers/config.inc.php.dist @@ -0,0 +1,14 @@ +<?php + +// $rcmail_config['additional_message_headers']['X-Remote-Browser'] = $_SERVER['HTTP_USER_AGENT']; +// $rcmail_config['additional_message_headers']['X-Originating-IP'] = $_SERVER['REMOTE_ADDR']; +// $rcmail_config['additional_message_headers']['X-RoundCube-Server'] = $_SERVER['SERVER_ADDR']; + +// if( isset( $_SERVER['MACHINE_NAME'] )) { +// $rcmail_config['additional_message_headers']['X-RoundCube-Server'] .= ' (' . $_SERVER['MACHINE_NAME'] . ')'; +// } + +// To remove (e.g. X-Sender) message header use null value +// $rcmail_config['additional_message_headers']['X-Sender'] = null; + +?> diff --git a/webmail/plugins/additional_message_headers/package.xml b/webmail/plugins/additional_message_headers/package.xml new file mode 100644 index 0000000..c15d9f8 --- /dev/null +++ b/webmail/plugins/additional_message_headers/package.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> +<package packagerversion="1.9.0" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 + http://pear.php.net/dtd/tasks-1.0.xsd + http://pear.php.net/dtd/package-2.0 + http://pear.php.net/dtd/package-2.0.xsd"> + <name>additional_message_headers</name> + <channel>pear.roundcube.net</channel> + <summary>Additional message headers for Roundcube</summary> + <description>Very simple plugin which will add additional headers to or remove them from outgoing messages.</description> + <lead> + <name>Ziba Scott</name> + <user>ziba</user> + <email>email@example.org</email> + <active>yes</active> + </lead> + <date>2013-08-25</date> + <version> + <release>1.2.0</release> + <api>1.2.0</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPL v2</license> + <notes>-</notes> + <contents> + <dir baseinstalldir="/" name="/"> + <file name="additional_message_headers.php" role="php"> + <tasks:replace from="@name@" to="name" type="package-info" /> + <tasks:replace from="@package_version@" to="version" type="package-info" /> + </file> + <file name="config.inc.php.dist" role="data"></file> + </dir> <!-- / --> + </contents> + <dependencies> + <required> + <php> + <min>5.2.1</min> + </php> + <pearinstaller> + <min>1.7.0</min> + </pearinstaller> + </required> + </dependencies> + <phprelease /> +</package> diff --git a/webmail/plugins/additional_message_headers/tests/AdditionalMessageHeaders.php b/webmail/plugins/additional_message_headers/tests/AdditionalMessageHeaders.php new file mode 100644 index 0000000..1c54ffc --- /dev/null +++ b/webmail/plugins/additional_message_headers/tests/AdditionalMessageHeaders.php @@ -0,0 +1,23 @@ +<?php + +class AdditionalMessageHeaders_Plugin extends PHPUnit_Framework_TestCase +{ + + function setUp() + { + include_once dirname(__FILE__) . '/../additional_message_headers.php'; + } + + /** + * Plugin object construction test + */ + function test_constructor() + { + $rcube = rcube::get_instance(); + $plugin = new additional_message_headers($rcube->api); + + $this->assertInstanceOf('additional_message_headers', $plugin); + $this->assertInstanceOf('rcube_plugin', $plugin); + } +} + |
