RECUPERATION AUTOMATIQUE DES MAIL IMAP

Vous avez trouvé un bug dans l'application (dernière version stable ou bêta): Décrivez le ici afin que la correction soit intégrée a la prochaine version.
jphi
Gsup LEVEL 3
Messages : 53
Enregistré le : mer. 18 juin 2014 12:09

Bonjour,

je n'arrive pas à récupérer les mails en automatique en utilisant la commande que vous aviez donné.
Il ne se synchronise pas aux minutes demandées. Je suis donc obligés à chaque fois de cliquer sur la récupération automatique pour prendre tous mes mails.
auriez vous une idéé à mon problème? car je suis embêté par cela :(

merci de votre retour.

Cordialement
Avatar du membre
Flox
Administrateur du site
Messages : 9447
Enregistré le : jeu. 21 juin 2012 19:00

bonjour,

pouvez vous nous préciser votre système d'exploitation serveur ainsi que vos versions de l'application..

Merci
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
jphi
Gsup LEVEL 3
Messages : 53
Enregistré le : mer. 18 juin 2014 12:09

Bonjour ,
Je suis sur du ubuntu 14.0.1 , avec la toute dernière version de gestsup.
Lorsque je tape la comme de récupération toute les 5 minutes en imap je ne récupère pas les mails je suis obligé à chaque fois d'aller cliquer sur récupération automatique.

Merci de votre aide
Avatar du membre
Flox
Administrateur du site
Messages : 9447
Enregistré le : jeu. 21 juin 2012 19:00

la commande est echo "*/5 * * * * php /var/www/mail2ticket.php" | crontab

pouvez vous vérifier le chemin d'accès "/var/www/" sur votre fichier mail2ticket.php.

pouvez vous nous donner votre fichier crontab.

enfin avez vous essayer d'executer la commande:

Code : Tout sélectionner

php /var/www/mail2ticket.php
afin de voir si un message d'erreur apparaît.

Cordialement
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
jphi
Gsup LEVEL 3
Messages : 53
Enregistré le : mer. 18 juin 2014 12:09

Bonjour,

merci de votre réponse, mon fichier mail2ticket.php a pour chemin var/www/html/mail2ticket.php

le message qui s'affiche lorsque j'exécute la commande php /var/www/html/mail2ticket.php est le suivant

PHP Fatal error: Call to undefined function imap_open() in /var/www/html/mail2ticket.php on line 32

à la ligne 32 de mon fichier mail2ticket.php j'ai cela

$inbox = imap_open($hostname,$rparameters['imap_user'],$rparameters['imap_password']) or die('Impossible de se connecter au serveur de Messagerie: ' . imap_last_error());

Cordialement
jphi
Gsup LEVEL 3
Messages : 53
Enregistré le : mer. 18 juin 2014 12:09

Bonjour,

quelqu’un aurait une idée à ce sujet?

Merci,

Cordialement
Avatar du membre
Flox
Administrateur du site
Messages : 9447
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

pouvez vérifier que l'extension php_imap est bien activée, dans le menu administration > système ?

si c'est le cas observez vous le même problème lors du test du connecteur ?

Cordialement
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
jphi
Gsup LEVEL 3
Messages : 53
Enregistré le : mer. 18 juin 2014 12:09

Bonjour,
Merci de votre réponse. L'extension php imap est bien activé.
Je reçois bien mes mails lorsque je lance la récupération automatique manuellement.
Jai beau chercher d'où vient la faille mais je n'y arrive pas .

Cordialement
jphi
Gsup LEVEL 3
Messages : 53
Enregistré le : mer. 18 juin 2014 12:09

Bonjour,

ci dessous mon fichier mail2ticket.php

Code : Tout sélectionner

<?php

################################################################################

# @Name : mail2ticket.php

# @Desc : convert mail in ticket

# @call : /index_auth.php

# @paramters : 

# @Autor : Flox

# @Create : 07/04/2013

# @Update : 16/07/2014

# @Version : 3.0.10

################################################################################



//initialize counter

$count=0;



//connexion script with database parameters

require "connect.php";



//define current time

$datetime = date("Y-m-d H:i:s");



//load parameters table

$qparameters = mysql_query("SELECT * FROM `tparameters`"); 

$rparameters= mysql_fetch_array($qparameters);



//hostname building

$hostname = '{'.$rparameters['imap_server'].':'.$rparameters['imap_port'].'}'.$rparameters['imap_inbox'].'';



//connect to inbox



//default case

$inbox = imap_open($hostname,$rparameters['imap_user'],$rparameters['imap_password']) or die('Impossible de se connecter au serveur de Messagerie: ' . imap_last_error());



// Exchange 2010

//$inbox = imap_open('{'.$rparameters['imap_server'].':'.$rparameters['imap_port'].'/pop3/novalidate-cert}'.$rparameters['imap_inbox'].'', $rparameters['imap_user'], $rparameters['imap_password'],NULL,1,array('DISABLE_AUTHENTICATOR'=>'GSSAPI')) or die('Impossible de se connecter au serveur de Messagerie: ' . imap_last_error());





//display header

echo'

<html lang="fr">

	<head>

		<meta charset="UTF-8" />

	</head>

';



if($inbox) 

{ 

	//grab mail

	echo "<u></u>Connexion à la boite au lettre en cours: <font color=green>ok</font><br /><br />";

	$emails = imap_search($inbox,'ALL');

	 //if emails are returned

    if($emails) {

		//for every email...

		foreach($emails as $email_number) {

			//get information specific to this email

			$overview = imap_fetch_overview($inbox, $email_number, 0);

			$seen=$overview[0]->seen;

			//if message is not read

			if ($seen==0)

			{

				$count=$count+1;

				//get mail data

				$message = imap_fetchbody($inbox, $email_number, 1);

				$header = imap_headerinfo($inbox, $email_number);

				$subject = $overview[0] -> subject;

				$from = $header->from[0]->mailbox . "@" . $header->from[0]->host;

				

				//special char convert

				$message=quoted_printable_decode($message);

				$subject=mb_decode_mimeheader($subject);

				$subject = str_replace('_', ' ', $subject);

				

				//Escape special char to SQL query

				$message=mysql_real_escape_string($message);

				$subject=mysql_real_escape_string($subject);

			

				//find gestsup userid from mail address

				$query= mysql_query("SELECT id FROM `tusers` where mail='$from' ");

				$row=mysql_fetch_array($query);

				if($row[0])

				{

					$user_id=$row[0];

				} else {

					$user_id='';

					$message='De '.$from.':\n'.$message;	

				}

				

				// create ticket

				$query= "INSERT INTO tincidents 

				(user,technician,title,description,date_create,techread,state,criticality,disable) 

				VALUES

				('$user_id','0','$subject', '$message','$datetime','0','5','4','0')";

				$exec = mysql_query($query) or die('Erreur SQL !<br />'.mysql_error());

				

				echo "&nbsp> Import du message $count: $subject: <font color=green>ok</font><br />";

			}

		}

	}

	imap_close($inbox);

	echo "<br />Total: Récupération de $count messages depuis <b>$rparameters[imap_server]</b> depuis le port <b>$rparameters[imap_port]</b><br />";



} else {

	echo "Erreur de connexion IMAP";

}

echo '</html>';

?>
cordialement
Avatar du membre
Flox
Administrateur du site
Messages : 9447
Enregistré le : jeu. 21 juin 2012 19:00

Je ne reproduit pas le problème de mon coté, pouvez vous nous fournir votre php.ini et verifier en phpinfo que l'extension est bien activée (extension=imap.so).

pourrez vous essayer cette syntaxe sous ubuntu:

Code : Tout sélectionner

php -c /etc/php.ini /var/www/html/mail2ticket.php
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
Répondre