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 2022-08-22 18:01:08

Rey0313
Member
Registered: 2022-04-05
Posts: 85

[Résolu] Utilisation du système de mailing de GLPI pour un plugin

Bonjour,

J'ai créer un plugin dans lequel j'ai besoin d'envoyer des mails, après plusieurs recherches et plusieurs test j'ai vu que la class PHPMailer.php était utilisé par GLPI pour envoyer des mails.
Mais j'ai du mal à comprendre et à savoir quelle fonction utilisé pour envoyer des mails en définissant un expéditeur et un destinataire.

Pouvez-vous m'indiquer quelle méthode utilisé ?

Merci d'avance

Last edited by Rey0313 (2022-08-26 15:24:00)


Glpi 10.0.3

Offline

#2 2022-08-23 12:30:57

cconard96
Moderator
Registered: 2018-07-31
Posts: 2,418
Website

Re: [Résolu] Utilisation du système de mailing de GLPI pour un plugin

Bonjour,

Si vous souhaitez éviter de créer de nouvelles notifications et d'utiliser le système de notification, un e-mail simple peut être envoyé à l'aide de la classe GLPIMailer qui étend PHPMailer.

Il définira certaines des configurations dont il peut avoir besoin, comme les paramètres de proxy (s'ils sont configurés), les paramètres SMTP, etc. Ensuite, vous pouvez l'utiliser comme PHPMailer.

https://github.com/PHPMailer/PHPMailer/wiki/Tutorial

Les méthodes que vous pourriez avoir besoin/souhaiter utiliser sur une instance de GLPIMailer sont :
"SetFrom", "AddReplyTo", "AddAddress", "Send"

Les propriétés que vous voudrez peut-être modifier :
"Subject", "Body"

Vous pouvez vous référer au code GLPI qui envoie les e-mails de notification pour plus d'informations sur l'utilisation.

src/NotificationEventMailing.php dans la fonction "envoyer".

Last edited by cconard96 (2022-08-23 14:40:54)


GLPI Collaborator and Plugin Developer.
My non-English comments are automated translations. Sorry for any confusion that causes.
Mes commentaires non anglais sont des traductions automatiques. Désolé pour toute confusion qui cause.
Mis comentarios que no están en inglés son traducciones automáticas. Perdón por cualquier confusión que cause.

Offline

#3 2022-08-23 14:37:35

Rey0313
Member
Registered: 2022-04-05
Posts: 85

Re: [Résolu] Utilisation du système de mailing de GLPI pour un plugin

Bonjour,

Merci pour votre réponse, mon objectif est effectivement juste d'envoyer un mail avec un expéditeur et destinataire n'ayant aucune adresse mail enregistré et un corps de mail et un sujet qui change.
Et pour envoyer ce mail j'aimerais utiliser la config smtp que j'ai mise pour les notifications glpi.
Je vais regarder la classe GLPIMailer.php et je reviendrez vers vous, si j'ai d'autres questions.

Merci encore

Last edited by Rey0313 (2022-08-23 14:46:11)


Glpi 10.0.3

Offline

#4 2022-08-25 11:39:24

Rey0313
Member
Registered: 2022-04-05
Posts: 85

Re: [Résolu] Utilisation du système de mailing de GLPI pour un plugin

Bonjour,

Je reviens vers vous après plusieurs essais, j'ai beau instancier la classe GLPIMailer je ne réussit pas à envoyer des mails.
J'utiliser une instance des méthodes setFrom() et addAddress() pour définir mon expéditeur et mon destinataire mais lorsque que j'appelle la méthode send() le mail en part pas.
J'ai aussi essayer de définir en brut dans mon hook.php (là où je souhaite faire l'envoi de mail) les configurations smtp avec la variable global $CFG_GLPI.
Mais cela ne marche toujours pas.

Pouvez-vous m'aider ?

Merci d'avance

Last edited by Rey0313 (2022-08-25 11:44:53)


Glpi 10.0.3

Offline

#5 2022-08-25 12:46:47

cconard96
Moderator
Registered: 2018-07-31
Posts: 2,418
Website

Re: [Résolu] Utilisation du système de mailing de GLPI pour un plugin

Bonjour,

Avez-vous des erreurs à partir de ce moment dans l'un des journaux dans "files/_log" ? Plus précisément, "php-errors.log" et "mail-errors.log" sont les plus susceptibles de contenir des informations pertinentes.


GLPI Collaborator and Plugin Developer.
My non-English comments are automated translations. Sorry for any confusion that causes.
Mes commentaires non anglais sont des traductions automatiques. Désolé pour toute confusion qui cause.
Mis comentarios que no están en inglés son traducciones automáticas. Perdón por cualquier confusión que cause.

Offline

#6 2022-08-25 14:23:29

Rey0313
Member
Registered: 2022-04-05
Posts: 85

Re: [Résolu] Utilisation du système de mailing de GLPI pour un plugin

Je n'ai pas de log d'erreur actuellement mais lors de mes tests j'ai une erreur qui est revenu plusieurs fois :

[2022-08-24 15:20:12] glpiphplog.NOTICE:   *** PHP Notice (8): Undefined offset: 1 in C:\xampp\htdocs\glpi\glpi\src\GLPIMailer.php at line 91
  Backtrace :
  plugins\envoi_suivi\hook.php:57                    GLPIMailer->__construct()
  plugins\envoi_suivi\hook.php:38                    envoi_mail()
  src\Plugin.php:1464                                envoi_suivi_updateitem_called()
  src\CommonDBTM.php:1655                            Plugin::doHook()
  src\CommonITILActor.php:428                        CommonDBTM->update()
  src\Ticket_User.php:59                             CommonITILActor->post_addItem()
  src\CommonDBTM.php:1298                            Ticket_User->post_addItem()
  src\Api\API.php:1832                               CommonDBTM->add()
  src\Api\APIRest.php:294                            Glpi\Api\API->createItems()
  apirest.php:58                                     Glpi\Api\APIRest->call()

Dans php-errors.log.

Je n'ai rien touché au fichier GLPIMailer.php

Last edited by Rey0313 (2022-08-25 14:33:44)


Glpi 10.0.3

Offline

#7 2022-08-25 23:41:24

cconard96
Moderator
Registered: 2018-07-31
Posts: 2,418
Website

Re: [Résolu] Utilisation du système de mailing de GLPI pour un plugin

Je pense qu'il peut y avoir un problème avec les données de session qui ne sont pas chargées correctement lors des appels d'API.

L'erreur provient de la ligne 91, qui vérifie si le mode d'utilisation est défini sur le mode débogage dans la session, mais l'erreur donne l'impression que l'indicateur est complètement manquant.

Ce n'est qu'un avis cependant, donc je ne pense pas que cela casserait quoi que ce soit (cela agirait simplement comme si vous n'étiez pas en mode débogage) et ne devrait pas affecter l'envoi de courriers électroniques dans l'interface Web.


GLPI Collaborator and Plugin Developer.
My non-English comments are automated translations. Sorry for any confusion that causes.
Mes commentaires non anglais sont des traductions automatiques. Désolé pour toute confusion qui cause.
Mis comentarios que no están en inglés son traducciones automáticas. Perdón por cualquier confusión que cause.

Offline

#8 2022-08-26 09:42:23

Rey0313
Member
Registered: 2022-04-05
Posts: 85

Re: [Résolu] Utilisation du système de mailing de GLPI pour un plugin

Bonjour,

Effectivement, j'ai une erreur liée à l'api que je n'ai pas précisé car je ne pensais pas que l'envoi d'un mail était lié à l'api.
La voici :

[2022-08-25 10:48:01] glpiphplog.NOTICE:   *** PHP Notice (8): Undefined index: errors in C:\xampp\htdocs\glpi\glpi\src\Api\API.php at line 2350
  Backtrace :
  src\Api\API.php:1837                               Glpi\Api\API->getGlpiLastMessage()
  src\Api\APIRest.php:294                            Glpi\Api\API->createItems()
  apirest.php:58                                     Glpi\Api\APIRest->call()

Avez-vous une idée de comment je pourrais envoyer des mails ?

Last edited by Rey0313 (2022-08-26 09:50:39)


Glpi 10.0.3

Offline

#9 2022-08-26 14:22:23

Rey0313
Member
Registered: 2022-04-05
Posts: 85

Re: [Résolu] Utilisation du système de mailing de GLPI pour un plugin

Re Bonjour,

Je reviens vers vous car je viens de trouver comment utiliser le système de mailing pour envoyer des mails avec les configurations smtp enregistrées au préalable.
Voici comment j'ai fait :

   $GLPIMailer = new GLPIMailer();                     // Instance de GLPIMailer

   $GLPIMailer -> Subject = $sujet;                    // Définit du sujet du mail
   $GLPIMailer -> msgHTML($corps);                  // Définit le corps du mail
   $GLPIMailer -> addAddress($dest);                 // Définit le destinataire
   $GLPIMailer -> send();                                   // Envoi le mail

C'est en fait très simple,

Merci cconard96 de m'avoir idée


Glpi 10.0.3

Offline

Board footer

Powered by FluxBB