Community discussions

MikroTik App
 
gracylayla
just joined
Topic Author
Posts: 1
Joined: Sun Feb 25, 2018 9:05 pm

Swift mailer issue: not compatible with php router os api

Thu Sep 20, 2018 12:12 pm

If I try to retrieve data from Mikrotik router with the PHP API
require_once 'PEAR2_Net_RouterOS-1.0.0b5.phar';

    $util = new RouterOS\Util(
        $client = new RouterOS\Client($this->ip_router, $this->user_router, $this->pass_router)
    );

    $util->setMenu('/ip hotspot user');
    $query=RouterOS\Query::where('name', 'admin')
    ->not()
    ->andwhere($conprop, $conval);

    //echo $query;

    $data = "";
    $tempdata = "";

    //echo $proplist."<br/>";
    $proplist = explode(',',$proplist);
    //echo $proplist[0]."<br/>";

    foreach ($util->getAll(array(),$query) as $item) {
        $tempdata = "";
        //echo $item->getProperty(name)."<br/>";
        foreach($proplist as $key => $value){

            $tempdata .= "".$item->getProperty($value).",";
            //echo "s=".$item->getProperty($value)."<br/>";
        }
        $tempdata = rtrim($tempdata,',');
        //echo "<br/>";
        $data .= $tempdata."#";
    }
    $data = rtrim($data,'#');
And run code to send email with swift mailer:
require_once 'swift/swift_required.php';
        require_once 'class_db_access.php'; 
        session_start();
        $db = new db_access;
        $db->initconnection();
        $config_smtp = $db->searchquery("select * from config_server where config_s_id = '2'");
        $parse_config = $db->fetcharray($config_smtp);
        $transport = Swift_SmtpTransport::newInstance($parse_config[1], $parse_config[4], $parse_config[5])
        ->setUsername($parse_config[2])
        ->setPassword($parse_config[3]);
        $mailer = Swift_Mailer::newInstance($transport);
        $headers = "MIME-Version: 1.0" . "\r\n";
        $headers .= "Content-type: text/plain; charset=iso-8859-1\n";
        $message = Swift_Message::newInstance(''.$subject.'')
        ->setFrom(array(''.$from.'',''.$from.'' => ''.$alias.''))
        ->setTo(array($to))
        ->setBody($content,$cformat);
        $result = $mailer->send($message);
Then I got this error:
Fatal error: Uncaught exception 'Exception' with message 'Class Swift_SmtpTransport could not be loaded from Swift\SmtpTransport.php, file does not exist (registered paths="phar://D:/Program/xampp1.8.3.4.0/htdocs/mikrotikcms/PEAR2_Net_RouterOS-1.0.0b5.phar/PEAR2_Net_RouterOS-1.0.0b5/src") [PEAR2_Autoload-0.2.4]' in phar://D:/Program/xampp1.8.3.4.0/htdocs/mikrotikcms/PEAR2_Net_RouterOS-1.0.0b5.phar/PEAR2_Net_RouterOS-1.0.0b5/src/PEAR2/Autoload.php:181 Stack trace: #0 [internal function]: PEAR2\Autoload::load('Swift_SmtpTrans...') #1 D:\Program\xampp1.8.3.4.0\htdocs\mikrotikcms\class_email.php(46): spl_autoload_call('Swift_SmtpTrans...') #2 D:\Program\xampp1.8.3.4.0\htdocs\mikrotikcms\action.php(163): email->send_email('DLSU AP: Sisa K...', 'noreply@dlsuap....', 'UPT PTI', '10013026@unikad...', '\r\n\tDear,
 
R1CH
Forum Guru
Forum Guru
Posts: 1101
Joined: Sun Oct 01, 2006 11:44 pm

Re: Swift mailer issue: not compatible with php router os api

Thu Sep 20, 2018 6:16 pm

This doesn't seem to have anything to do with RouterOS API, your Swift installation seems broken:
Class Swift_SmtpTransport could not be loaded from Swift\SmtpTransport.php, file does not exist

Who is online

Users browsing this forum: Bing [Bot], Fi011, Pilo2710 and 204 guests