Hey, tous le monde !


Je suis actuellement en train de développer un projet sous Symfony 2.3, et aujourd'hui je m'attelle à la réalisation d'un script qui récupère les mails Gmail.

Malheureusement quand j'exécute, ma tâche avec la console de symfony, j'ai :

Erreur maudite:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$ app/console answer:script
    PHP Fatal error:  Call to undefined function Answer\HomeBundle\Command\imap_open() in /Applications/MAMP/htdocs/Symfony/src/Answer/HomeBundle/Command/GMailReader.php on line 40

J'éxecute un script présent dans: /Applications/MAMP/htdocs/Symfony/src/Answer/HomeBundle/Command/scriptCommand.php

scriptCommand.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
namespace Answer\HomeBundle\Command;
 
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; 
use Symfony\Component\Console\Input\InputArgument; 
use Symfony\Component\Console\Input\InputInterface; 
use Symfony\Component\Console\Input\InputOption; 
use Symfony\Component\Console\Output\OutputInterface; 
use Symfony\Component\HttpFoundation\Response;
 
use Answer\HomeBundle\Entity\Reponse;
use Answer\UserBundle\Entity\User;
 
 
class scriptCommand extends ContainerAwareCommand
{
    protected function configure()
    {
        $this
            ->setName('answer:script')
            ->setDescription('Greet someone')
        ;
    }
 
    protected function execute(InputInterface $input, OutputInterface $output)
    {
 
 
        include_once 'GMailReader.php';
        require_once 'GoogleAgenda.php';
        require_once 'GoogleAgendaEvent.php';
        require_once 'GoogleAgendaException.php';
 
 
        $em = $this->getContainer()->get('doctrine')->getEntityManager();
        $repository = $this->getContainer()->get('doctrine')->getRepository('AnswerUserBundle:User');
        $users = $repository->findAll();
 
        foreach($users as $user){
            $login = $user->mail_login;
            $password = $user->mail_password;
            $link_agenda = $user->cal_url;
 
            /*
            *     MAIL: CONNEXION ET RECUPERATION
            */
            $gmail = new GMailReader();
            $gmail->openMailBox($login, $password);
            $date = date('j-M-Y');
            $msgNonLu = $gmail->getMessagesSince($date);
 
 .........
 
    }
}
 ?>
Ce script fait appel, à d'autre Class, présentes elles aussi dans: /Applications/MAMP/htdocs/Symfony/src/Answer/HomeBundle/Command/, nottament GMailReader.php, qui ouvre la connexion IMAP.

GMailReader.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
namespace Answer\HomeBundle\Command;
 
class GMailReader {
 
    private $mail;
 
    public function __construct()
    {
 
    }
 
    public function openMailBox($user, $password)
    {
        $this->mail = imap_open("{imap.gmail.com:993/imap/ssl}INBOX", $user, $password);
    }
 
..........
 
}
?>
Je voudrais savoir, pourquoi imap_open n'est pas reconnu, alors qu'il est bien actif dans tout mes php.ini. Je m'y prends surement mal dans l'organisation de mes fichiers étant donné que je suis débutant dans Symfony ^^.

Je peux au besoin clarifié certaines choses n'hésiter pas à me demander

Merci, et bonne journée !

Adrien