tbrehm
2009-10-28 8829e1cba7fd607299bcefe8eccf037331f36a99
Added: FS#693 - Add SSL options to GETMAIL section so getmail can be used with gmail and others that force SSL
2 files modified
22 ■■■■■ changed files
interface/web/mail/form/mail_get.tform.php 2 ●●● patch | view | raw | blame | history
server/plugins-available/getmail_plugin.inc.php 20 ●●●●● patch | view | raw | blame | history
interface/web/mail/form/mail_get.tform.php
@@ -73,7 +73,7 @@
            'datatype'    => 'VARCHAR',
            'formtype'    => 'SELECT',
            'default'    => '',
            'value'        => array('pop3' => 'POP3','imap'=>'IMAP')
            'value' => array('pop3' => 'POP3','imap'=>'IMAP','pop3ssl' => 'POP3SSL','imapssl'=>'IMAPSSL')
        ),
        'source_server' => array (
            'datatype'    => 'VARCHAR',
server/plugins-available/getmail_plugin.inc.php
@@ -1,7 +1,7 @@
<?php
/*
Copyright (c) 2007, Till Brehm, projektfarm Gmbh
Copyright (c) 2007 - 2009, Till Brehm, projektfarm Gmbh
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
@@ -108,12 +108,16 @@
                } else {
                    $tpl = str_replace('{DELETE}','0',$tpl);
                }
                // Set the data retriever
                if($data["new"]["type"] == 'pop3') {
                    $tpl = str_replace('{TYPE}','SimplePOP3Retriever',$tpl);
                } elseif ($data["new"]["type"] == 'imap') {
                    $tpl = str_replace('{TYPE}','SimpleIMAPRetriever',$tpl);
                } elseif ($data["new"]["type"] == 'pop3ssl') {
                    $tpl = str_replace('{TYPE}','SimplePOP3SSLRetriever',$tpl);
                } elseif ($data["new"]["type"] == 'imapssl') {
                    $tpl = str_replace('{TYPE}','SimpleIMAPSSLRetriever',$tpl);
                }
            
                // Set server, username, password and destination.
@@ -140,22 +144,12 @@
    function delete($event_name,$data) {
        global $app, $conf;
        
        // load the server specific configuration options for getmail
        $app->uses("getconf");
        $getmail_config = $app->getconf->get_server_config($conf["server_id"], 'getmail');
        $this->getmail_config_dir = $getmail_config["getmail_config_dir"];
        $config_file_path = escapeshellcmd($this->getmail_config_dir.'/'.$data["old"]["source_server"].'_'.$data["old"]["source_username"].'.conf');
        if(stristr($config_file_path,"..") || stristr($config_file_path,"|") || stristr($config_file_path,";") || stristr($config_file_path,'$')) {
            $app->log("Possibly faked path for getmail config file: '$config_file_path'. File is not written.",LOGLEVEL_ERROR);
            return false;
        }
        if(is_file($config_file_path)) {
            unlink($config_file_path);
            $app->log("Deleting file: '$config_file_path'.",LOGLEVEL_DEBUG);
        } else {
            $app->log("Nothing to delete: '$config_file_path'.",LOGLEVEL_DEBUG);
        }
        if(is_file($config_file_path)) unlink($config_file_path);
    }