You are not logged in.
Pages: 1
Topic closed
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 :
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
Pages: 1
Topic closed