You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2019-09-04 12:26:09

f.leput
Member
Registered: 2018-12-03
Posts: 3

Problème collecteur / office 365 encore et toujours...

Bonjour,

Avant toute chose je précise que j'ai fouillé ce forum de fond en comble avant de poster de message.

J'utilise GLPI 9.3.2

Mon collecteur est configuré de la manière suivante :
- nom : support.info@xyz.bzh
- actif : oui
- serveur : outlook.office365.com
- IMAP, SSL, NO-VALIDATE-CERT
- dossier : INBOX
- port : 993
- identifiant : support.info@xyz.bzh
- kerberos : non

j'ai donc la chaîne de connexion suivante : {outlook.office365.com:993/imap/ssl/novalidate-cert}INBOX

J'ai systématiquement l'erreur : échec de connexion au collecteur.
Dans les logs PHP (fichier php-errors.log de GLPI) :

[2019-09-04 12:15:09] glpiphplog.ERROR: Toolbox::userErrorHandlerNormal() in /opt/glpi/inc/toolbox.class.php line 657
  *** PHP Warning(2): imap_open(): Couldn't open stream {outlook.office365.com:993/imap/ssl/novalidate-cert}INBOX
  Backtrace :
  :                                                 
  inc/mailcollector.class.php:1227                   imap_open()
  inc/mailcollector.class.php:609                    MailCollector->connect()
  front/mailcollector.form.php:77                    MailCollector->collect()
  {"user":"2@SRVWEB","mem_usage":"0.193\", 1.71Mio)"}
[2019-09-04 12:15:09] glpiphplog.ERROR: Toolbox::userErrorHandlerNormal() in /opt/glpi/inc/toolbox.class.php line 657
  *** PHP Notice(8): Unknown: Login aborted (errflg=2)
  Backtrace :
  :                                                 
  {"user":"2@SRVWEB","mem_usage":"0.013\", 2.51Mio)"}
[2019-09-04 12:15:09] glpiphplog.ERROR: Toolbox::userErrorHandlerNormal() in /opt/glpi/inc/toolbox.class.php line 657
  *** PHP Notice(8): Unknown: Login aborted (errflg=2)
  Backtrace :
  :                                                 
  {"user":"2@SRVWEB","mem_usage":"0.000\", 2.51Mio)"}
[2019-09-04 12:15:09] glpiphplog.DEBUG: Config::getCache() in /opt/glpi/inc/config.class.php line 2989
CACHE cache_db Zend\Cache\Storage\Adapter\Apcu  {"user":"2@SRVWEB"}
[2019-09-04 12:15:09] glpiphplog.DEBUG: Config::getCache() in /opt/glpi/inc/config.class.php line 2989
CACHE cache_trans Zend\Cache\Storage\Adapter\Apcu  {"user":"2@SRVWEB","mem_usage":"0.010\", 1.39Mio)"}
[2019-09-04 12:15:10] glpiphplog.DEBUG: Config::getCache() in /opt/glpi/inc/config.class.php line 2989
CACHE cache_db Zend\Cache\Storage\Adapter\Apcu  {"user":"2@SRVWEB","mem_usage":"0.177\", 7.88Mio)"}
[2019-09-04 12:15:11] glpiphplog.DEBUG: Config::getCache() in /opt/glpi/inc/config.class.php line 2989
CACHE cache_db Zend\Cache\Storage\Adapter\Apcu  {"user":"2@SRVWEB"}
[2019-09-04 12:15:11] glpiphplog.DEBUG: Config::getCache() in /opt/glpi/inc/config.class.php line 2989
CACHE cache_trans Zend\Cache\Storage\Adapter\Apcu  {"user":"2@SRVWEB","mem_usage":"0.013\", 1.39Mio)"}
[2019-09-04 12:15:11] glpiphplog.DEBUG: Config::getCache() in /opt/glpi/inc/config.class.php line 2989
CACHE cache_db Zend\Cache\Storage\Adapter\Apcu  {"user":"2@SRVWEB"}
[2019-09-04 12:15:11] glpiphplog.DEBUG: Config::getCache() in /opt/glpi/inc/config.class.php line 2989

Je tiens à préciser que je suis absolument certain des informations de connexion du mail utilisé, de plus imap est bien activé côté office365.

de plus, j'ai écrit un petit script PHP pour tester ma connexion IMAP à ma boite mail office365 qui utilise les mêmes identifiants de connexion et que celui-ci fonctionne parfaitement :

<?php
$imapLink = imap_open("{outlook.office365.com:993/imap/ssl}INBOX","support.info@xyz.bzh","XXXXXXXXXX");

if(!$imapLink) {
    echo "La connexion a échoué.";
}
else {
    echo "Connexion établie.";

    // On utilise imap_check() pour voir les informations liées à la BAL
    $mailBoxInfos = imap_check($imapLink);

    if(!$mailBoxInfos) {
        echo "La récupération a échoué.";
    }
    else {
        echo "Lecture des informations...";
        echo '<pre>';
        print_r($mailBoxInfos);
        echo '</pre>';
    }

    // On utilise imap_close() pour fermer la connexion avec en paramètre la ressource retournée par imap_open()
    $imapClose = imap_close($imapLink);

    if(!$imapClose) {
        echo "La fermeture a échoué.";
    }
    else {
        echo "Fermeture de la connexion réussie.";
    }
}

Mon script renvoie ceci :

Connexion établie.Lecture des informations...

stdClass Object
(
    [Date] => Wed, 4 Sep 2019 11:47:49 +0200 (CEST)
    [Driver] => imap
    [Mailbox] => {LHR-efz.ms-acdc.office.com:993/imap/notls/ssl/user="support.info@guingamp-paimpol.bzh"}INBOX
    [Nmsgs] => 60
    [Recent] => 0
)

Fermeture de la connexion réussie.

En bref je suis perdu HELP PLEAAAAASE !

Merci d'avance,

Fred.

Offline

#2 2019-09-04 12:45:10

f.leput
Member
Registered: 2018-12-03
Posts: 3

Re: Problème collecteur / office 365 encore et toujours...

Petite précision : en modifiant le code du fichier inc/mail-collector.class dans la fonction connect le collecteur fonctionne... mais évidemment c'est sale.

/**
     * Connect to the mail box
   **/
   function connect() {

      if ($this->fields['use_kerberos']) {
         $this->marubox = @imap_open($this->fields['host'], $this->fields['login'],
                                     Toolbox::decrypt($this->fields['passwd'], GLPIKEY),
                                     CL_EXPUNGE, 1);
      } else {
         $try_options = [['DISABLE_AUTHENTICATOR' => 'GSSAPI'],
                              ['DISABLE_AUTHENTICATOR' => 'PLAIN']];
         foreach ($try_options as $option) {
             /*
            $this->marubox = @imap_open($this->fields['host'], $this->fields['login'],
                                        Toolbox::decrypt($this->fields['passwd'], GLPIKEY),
                                        CL_EXPUNGE, 1, $option);
              * 
              */
// modification en dur qui fonctionne....
             $this->marubox = @imap_open("{outlook.office365.com:993/imap/ssl}INBOX","support.info@xyzbzh","XXXXXXX", CL_EXPUNGE, 1, $option);
            if (is_resource($this->marubox)) {
               break;
            }
         }

      }
      // Reset errors
      if ($this->marubox) {
         // call this to avoid the mailbox is empty error message
         if (imap_num_msg($this->marubox) == 0) {
             $errors = imap_errors();
         }

         if ($this->fields['errors'] > 0) {
            $this->update(['id'     => $this->getID(),
                                'errors' => 0]);
         }
      } else {
            $this->update(['id'     => $this->getID(),
                                'errors' => ($this->fields['errors']+1)]);
      }

Offline

Board footer

Powered by FluxBB