1. Cor Kuyvenhoven Member

    Php imap reseller probleem

    Topic geplaatst op: 05-10-2014 om 12:38

    Merkwaardig probleem.

    Ik gebruik onderstaande code om een mailbox uit te lezen en dan alle spam weg te gooien. Maar het werkt niet op de server waar ik het installeerde.
    Op mijn eigen vps'en (niet van Versio) en op een ander reseller account van Versio (op een andere server) werkt het wel om de mailbox uit te lezen op de Versio reseller server. Merkwaardige is echter dat Roundcube wel werkt op de server waar mijn script dus niet op draait.

    Ik krijg geen foutmeldingen, de ene keer crapt de server er zo maar uit, de andere keer krijg ik een time-out.
    Het lijkt erop dat deze server afwijkend is van de php setup op de werkende versio reseller server.
    Dus het script werkt niet als ik het draai op de reseller server 159.253.0.127, het draait wel als ik het op andere servers draai, zelfs van buiten Versio netwerk.

    <?PHP
    error_reporting('E_ALL');
    $mailServer="159.253.0.127";
    $mailUser="***";
    $mailPassword="***";


    $mbox = imap_open("{".$mailServer.":143/novalidate-cert}", $mailUser, $mailPassword)
    or die('Cannot connect: ' . imap_last_error());

    echo "<h1>Mailboxes</h1>\\n";
    $folders = imap_listmailbox($mbox, "{".$mailServer.":143}", "*");

    if ($folders == false) {
    echo "Call failed<br />\\n";
    } else {
    foreach ($folders as $val) {
    echo $val . "<br />\\n";
    }
    }

    echo "<h1>Headers in INBOX</h1>\\n";
    $headers = imap_headers($mbox);

    if ($headers == false) {
    echo "Call failed<br />\\n";
    } else {
    foreach ($headers as $val) {
    echo $val . "<br />\\n";
    }
    }

    imap_close($mbox);
    ?>

  2. Samuël Van Laere Member
    Reactie geplaatst op: 06-10-2014 om 20:41

    Denk niet dat de IMAP extensie beschikbaar is op de resellers:
    extension=imap.so

    Vond u dit antwoord nuttig?

  3. Samuël Van Laere Member
    Reactie geplaatst op: 06-10-2014 om 20:49

    Zie dat de functie wel bestaat.
    Zelf gebruik ik dit, met als voorbeeld een Gmail account:

    <?php

    $hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
    $username = '';
    $password = '';

    if (function_exists('imap_open')) {

    $imap = imap_open($hostname, $username, $password) or die('Cannot connect to mail: ' . imap_last_error());
    $message_count = imap_num_msg($imap);

    $emails = array();

    for ($i = 1; $i <= $message_count; ++$i) {
    $header = imap_header($imap, $i);
    $personal = (isset($header->from[0]->personal)) ? $header->from[0]->personal : '';
    $mailbox = (isset($header->from[0]->mailbox)) ? $header->from[0]->mailbox : '';
    $host = (isset($header->from[0]->host)) ? $header->from[0]->host : '';
    $email = strtolower($mailbox . '@' . $host);

    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $emails[] = $email;
    }
    }

    imap_close($imap);

    $emails = array_unique($emails, SORT_STRING);
    asort($emails);

    echo '<ol>' . PHP_EOL;
    foreach ($emails as $email) {
    echo '<li>' . $email . '</li>' . PHP_EOL;
    }
    echo '</ol>' . PHP_EOL;

    } else {
    echo 'De functie imap_open is niet beschikbaar !';
    }
    ?>

    Vond u dit antwoord nuttig?

  4. jordivn Member
    Reactie geplaatst op: 08-10-2014 om 14:11

    Miss even in DA de php versie vergelijken van je reseller servers (show system information).

    Zelf gebruik ik ook php imap voor een stukje commandos uit te voeren (vervolgens voor een ical)

    Ik maak alleen verbinding met de centrale server (mail.axc.nl) met daarbij je ssl verbinding.
    Misschien dat je daarmee verder komt.

    Vond u dit antwoord nuttig?