PrestashopUser03 Posted March 4, 2021 Share Posted March 4, 2021 (edited) 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 March 4, 2021 by PrestashopUser03 (see edit history) Link to comment Share on other sites More sharing options...
hhennes Posted March 4, 2021 Share Posted March 4, 2021 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 More sharing options...
PrestashopUser03 Posted March 4, 2021 Author Share Posted March 4, 2021 (edited) 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 March 4, 2021 by PrestashopUser03 (see edit history) Link to comment Share on other sites More sharing options...
hhennes Posted March 4, 2021 Share Posted March 4, 2021 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 More sharing options...
PrestashopUser03 Posted April 2, 2021 Author Share Posted April 2, 2021 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now