Erreur de cron lors d'envoi de mail : Could not instantiate mail function

Erreur de cron lors d'envoi de mail : Could not instantiate mail function

par Benjamin Seclier,
Nombre de réponses : 4
Avatar Développeurs de plugins
Bonjour à tous,
Je jette une bouteille à la mer, ça a marché la dernière fois, pourquoi pas cette fois sourire
Nous sommes, avec mon collègue, sur un problème que nous ne parvenons pas à résoudre (depuis plusieurs mois). Presque tous les jours, nous avons des mails qui ne partent plus de notre plateforme (mails envoyés par le cron après post dans un forum), cela correspond à ces erreurs dans notre cron moodle :

Processing user 217686
Sending post 117989: listes d'émargement des 3 groupes de TD L1
Processing user 105466
Sending post 117989: listes d'émargement des 3 groupes de TD L1
Processing user 242942
Sending post 117989: listes d'émargement des 3 groupes de TD L1
Processing user 238666
Sending post 117989: listes d'émargement des 3 groupes de TD L1
Processing user 209622
Sending Error: lib/moodlelib.php email_to_user(): Could not instantiate mail function.
post 117989: listes d'émargement des 3 groupes de TD L1
Processing user 202563
Sending Error: lib/moodlelib.php email_to_user(): Could not instantiate mail function.
post 117989: listes d'émargement des 3 groupes de TD L1
Processing user 245986
Sending Error: lib/moodlelib.php email_to_user(): Could not instantiate mail function.
post 117989: listes d'émargement des 3 groupes de TD L1

Comme vous pouvez le voir, des dizaines de mails partent très bien (la liste n'est pas exhaustive ici) puis, à un moment, y a quelque chose qui fait que les mails ne parviennent plus à être envoyés (avec l'erreur Could not instantiate mail function).

Voici les actions/observations que nous avons déjà faites :
- Arrêté les autres cron des autres moodle de notre machine
- Positionné un lock sur le cron pour éviter le lancement de 2 crons simultanés
- Limité très fortement l'usage de cette machine (les utilisateurs sont renvoyés vers les autres machines du cluster)
- Constaté qu'il n'y a pas un seuil fixe au delà duquel les mails ne partent plus (aujourd'hui, on a bloqué à 504 mails puis, plus tard dans la journée, 2250 mails sont partis correctement)
- Défini des logs de debug niveau PHP, Postfix qui n'ont rien donné
- Les mails ne sont même pas envoyés au postfix, c'est le code php qui bloque l'envoi du mail
- Nous avons un moodle en version 3.5.1 et un php en version 7.1.

Avez-vous déjà rencontré ce problème ? Auriez-vous des pistes ?
Merci par avance pour votre aide.

Bonne journée.
Moyenne des évaluations  -
En réponse à Benjamin Seclier

Re: Erreur de cron lors d'envoi de mail : Could not instantiate mail function

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

Bonjour,

J'ai déjà rencontré ce problème. Une piste : le serveur de messagerie utilisé par votre université ?

Christian

En réponse à Christian Bocquet

Re: Erreur de cron lors d'envoi de mail : Could not instantiate mail function

par Benjamin Seclier,
Avatar Développeurs de plugins
Bonjour,
Non, peu probable car comme je l'ai dit, le mail n'est même pas émis au postfix local, c'est le code PHP qui bloque son envoi.
En réponse à Benjamin Seclier

Re: Erreur de cron lors d'envoi de mail : Could not instantiate mail function

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Benjamin,

Est-ce que ce son toujours les mêmes cours ou utilisateurs (dont on voit les ID) qui sont en défaut ? N'y aurait-il pas un défaut sur ces objets en base de données (défaut d'intégrité) ?
Peux-tu lancer https://mon.moodle/admin/tool/health/ ? Peut-être y aura-t-il des éléments intéressants ?

Où en est ta valeur de PHP copncernant memory_limit ? Perso, j'en suis à 128M.
Le côté erratique de ce comportement me fait penser à un problème de ressource système mais... pas sûr.

À bientôt,
Patrick

En réponse à Patrick Lemaire

Re: Erreur de cron lors d'envoi de mail : Could not instantiate mail function

par Benjamin Seclier,
Avatar Développeurs de plugins
Bonjour Patrick,
J'ai alloué 1Go juste au cron, je pense donc que je suis assez large niveau ressources. J'ai également graphé tout ce que je pouvais côté OS, rien à signaler quand ça plante...
Les utilisateurs impactés ne sont jamais les mêmes.

Je ne connaissais pas cet outil health, je vais jeter un œil, merci pour le conseil.
A+