Jump to content

Erreur - Le modèle d'e-mail suivant n'existe pas : process_atelier


Recommended Posts

Bonjour à tous,

Je tente d'envoyer un mail depuis un module en suivant la doc, et je me retrouve face à l'erreur du titre, voici mon code :

Mail::Send(
  (int)(Configuration::get('PS_LANG_DEFAULT')), // defaut language id
  'process_atelier', // email template file to be use
  ' Module Installation', // email subject
  array(
  '{email}' => Configuration::get('PS_SHOP_EMAIL'), // sender email address
  '{message}' => 'Hello world' // email content
  ),
  Configuration::get('PS_SHOP_EMAIL'), // receiver email address
  NULL, //receiver name
  NULL, //from email address
  NULL,  //from name
  NULL, //file attachment
  NULL, //mode smtp
  '/modules/monmodule/mails' //custom template path
 );

- Je n'ai pas inclus ce code dans un admin controller mais directement dans le fichier monmodule.php.
-
Le dossier monmodule/mails existe bien.
- Voici le chemin des templates txt et html : modules/monmodule/mails/fr/process_atelier.txt et modules/monmodule/mails/fr/process_atelier.html

 

Quel est le problème de mon code ?

 

 

Edited by PrestashopUser03 (see edit history)
Link to comment
Share on other sites

Bonjour,

Sur mes derniers tests il fallait donner le chemin complet du dossier pour que ce soit fonctionnel.

_PS_MODULE_DIR_.'/modules/monmodule/mails' //custom template path


J'avais fait un article assez complet sur l'envoi des emails dans les modules il y' a pas très longtemps :
https://www.h-hennes.fr/blog/2021/02/01/prestashop-gerer-les-emails-dans-vos-modules/

Cordialement,

Link to comment
Share on other sites

Je vous remercie, j'ai bien modifié mais ça ne fonctionne pas. La fonction se trouve dans le hook hookActionValidateOrder et après la commande, le mail ne s'envoie pas, est-ce normal ?

Edit : J'ai aussi essayé avec _PS_MODULE_DIR_.'monmodule/mails' //custom template path

et ça ne marche pas plus.

Edited by PrestashopUser03 (see edit history)
Link to comment
Share on other sites

Bonjour,

Dans un premier temps essayez déjà d'envoyer l'email dans un autre contexte, ou vous avez plus la main pour l'exécuter en masse sans devoir passer une commande pour tester.

Vérifiez également le contexte de langue, assurez vous que par exemple il n'essaye pas d'envoyer l'email en langue anglaise ( si c'est la langue par défaut ) car dans votre code vous ne prenez pas en compte la langue du client ou du navigateur courrant.

Faites également vos emails dans le dossier /en pour confirmer ou infirmer cette possibilité.


 

Link to comment
Share on other sites

  • 4 weeks later...

Avec ce code (le votre), les mails partent :

Mail::send(
            $this->context->language->id, //Identifiant de langue
            'process_atelier', //Code du template ( nom du fichier sans extension) Attention il faut créer un fichier html et txt de chaque template
            $this->l(' Module Installation'), // Sujet de l'email ( on peut forcer la traduction dans une locale souhaitée)
            $emailsVars,//Variables de l'email
            "[email protected]" , // Email de l'adresse
            NULL, //receiver name
            NULL, //from email address
            NULL,  //from name
            NULL, //file attachment
            NULL, //mode smtp
            _PS_MODULE_DIR_.'monmodule/mails' //La ligne importante est ici ( chemin du dossier mail de votre module )
        );

cependant, dans le corps du mail, au lieu d'avoir le contenu du fichier "process_atelier.html", j'ai juste le texte "process_atelier.html" qui est écrit. Avez-vous une idée de pourquoi ça fait ça ?

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...