1<?php 2/** 3 * DokuWiki Plugin smtp (Action Component) 4 * 5 * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html 6 * @author Andreas Gohr <andi@splitbrain.org> 7 */ 8 9// must be run within Dokuwiki 10if(!defined('DOKU_INC')) die(); 11 12class action_plugin_smtp extends DokuWiki_Action_Plugin { 13 14 /** 15 * Registers a callback function for a given event 16 * 17 * @param Doku_Event_Handler $controller DokuWiki's event controller object 18 * @return void 19 */ 20 public function register(Doku_Event_Handler $controller) { 21 22 $controller->register_hook('MAIL_MESSAGE_SEND', 'BEFORE', $this, 'handle_mail_message_send'); 23 24 } 25 26 /** 27 * [Custom event handler which performs action] 28 * 29 * @param Doku_Event $event event object by reference 30 * @param mixed $param [the parameters passed as fifth argument to register_hook() when this 31 * handler was registered] 32 * @return void 33 */ 34 35 public function handle_mail_message_send(Doku_Event &$event, $param) { 36 require_once __DIR__ . '/loader.php'; 37 38 /** @var Mailer $mailer Our Mailer with all the data */ 39 $mailer = $event->data['mail']; 40 $rcpt = $mailer->cleanAddress($event->data['to']) . ',' . 41 $mailer->cleanAddress($event->data['cc']) . ',' . 42 $mailer->cleanAddress($event->data['bcc']); 43 $from = $event->data['from']; 44 45 $message = new \splitbrain\dokuwiki\plugin\smtp\Message( 46 $from, 47 $rcpt, 48 $mailer->dump() 49 ); 50 51 $smtp = new \Tx\Mailer\SMTP(); 52 $smtp->setServer('localhost', 2525, null); 53 54 $smtp->send($message); 55 } 56 57} 58 59// vim:ts=4:sw=4:et: 60