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 2016-07-25 12:47:26

noircc
Member
Registered: 2015-10-09
Posts: 51

Action Automatique queuedmail bloqué sur "En cours d'exécution"

Salut,

Je ne sais pas si c'est dans Astuce ou bug mais voici une astuce pour ce soucis :

On avait régulièrement des mails qui ne partaient pas (principalement tout les mails qui touchent les réservations).
On a aussi régulièrement des pop-up d'erreurs d'envoi de mail lorsque l'adresse mail du demandeur diffère de notre domaine (dû à l'importation via collecteur)(Erreur dans l'envoi du courriel SMTP Error: The following recipients failed: xxxx@email.com).

Lorsque l'on était au courant qu'un mail n'était pas parti, on exécutait manuellement l'action Automatique "queuedmail", parfois il bloquait (rechargement de la page web vide + bloqué sur "En cours d'exécution"), mais généralement au bout d'un moment il fonctionnait et envoyait les mails.

Aujourd'hui c'est devenu particulièrement bloquant, donc j'ai fait quelque recherche smile :

1. Modification des paramètres de l'action automatique "queuedmail" (mode d'exécution ; courriels max à envoyer ;...)

2. Exécution multiple de l'action automatique "queuedmailclean".

3. Exécution de l'action automatique "queuedmail" en ligne de commande : php.exe C:\xampp\htdocs\glpi\front\cron.php --force queuedmail

Rien n'a fonctionné.

Je suis aller voir du coté de la base de données et il y a une base qui s’appelle "glpi_queuedmails". Dans cette base j'avais des entrées ou le champ "sent_try" était à plus de 4000-8000 essaie.

J'ai donc exécuté cette commande : DELETE FROM `glpi_queuedmails` WHERE `sent_try` > 15; pour supprimer toutes les entrées bloquante.

J'ai refais ensuite un test en ligne de commande et via l'interface graphique et là l'action automatique s'est déroulé immédiatement.

J'ai donc programmé, 1 fois par jour, cette commande dans une tâche planifié, dans un script PowerShell.

Voici ma commande :

function PURGE_DATABASE
    {    
    $port = "3306"
    $srv= "127.0.0.1"
    $user = "xxxxxx"
    $mdp = "xxxxxxx"
    
    $cn = New-Object MySql.Data.MySqlClient.MySqlConnection
    $cn.ConnectionString = "server=$srv;port=$port;uid=$user;pwd=$mdp;database=glpi"
    $cn.Open()
    $cm = New-Object -TypeName MySql.Data.MySqlClient.MySqlCommand
    
    # Supprime, de la table sent_try dans la base de données glpi_queuedmails, les mails  
    # dont le nombre d'essai d'envoi dépasse les 15 fois.
    $sql = "DELETE FROM `glpi_queuedmails` WHERE `sent_try` > 15"
    $cm.Connection = $cn
    $cm.CommandText = $sql
    $dr = $cm.ExecuteReader()
    $cn.Close() 
    }

++

Offline

Board footer

Powered by FluxBB