Jump to content

Ajouter une pièce jointe mail


Recommended Posts

Bonjour,

 

Je développe un module sur Prestashop 1.7.6.9 qui envoi des mails aux comptable ou au client directement. L'envoi des emails fonctionne parfaitement. Cependant je rencontre une problématique. 

Je souhaite envoyé la facture directement à la comptable quand je clique sur envoyer. 

Et quand c'est Ar je souhaite pouvoir choisir un fichier du pc.

image.png.c78057b24f4f1d54edf5bead9058a346.png

Mais je ne vois pas comment je puisse faire pour récupérer justement le fichier voulu.  Car dans mon if quand je sélectionne compta je dois récupérer du coup la facture et la mettre sur $attachment et pour l'ar justement récupérer le fichier via le pc. 

 

Si quelqu'un à une idée , une piste. Ce serait super :) 

Voici mon code pour l'envoi d'un mail  :

 

   if ($typeMail == "AR") {

            $subject = $this->l('Accusé de réception pour la commande');

            $template_name = 'mail_ar';

            $mail = Db::getInstance()->getValue('SELECT email_ar FROM`' . _DB_PREFIX_ .'jv_mail` where id_customer = '. (int)$id_customer);

            $mail1 = "[email protected]";

           
            //$file_attachement = ?? //Fichier du pc 
           $file_attachement = null

        }

        if ($typeMail == "Compta") {

            $subject = $this->l('Facture de la commande');

            $template_name = 'mail_compta';

            $mail = Db::getInstance()->getValue('SELECT email_compta FROM`' . _DB_PREFIX_ .'jv_mail` where id_customer = '. (int)$id_customer);

            $mail1 = "[email protected]";

            // Join PDF invoice
            if ((int)Configuration::get('PS_INVOICE') && $order_status->invoice && $order->invoice_number)
            {
            $file_attachement = ??,; //Récuperation de la facture  
            }
            else
            $file_attachement = null;

                    }

       

        Mail::Send(

            $id_lang,

            $template_name,

            $subject,

            $templateVars,

            $mail1,//mail du destinataire

            null, //$customer->firstname, // nom client

            null,

            null,

            $file_attachement, //$file_attachmentfichiers joints,

            null,

            dirname(__FILE__) . '/mails/'

        );

 

j'ai regarder quelques topic mais sans succès

 

https://www.prestashop.com/forums/topic/334226-solved-how-to-send-custom-email-with-attachment/

 

Merci d'avance, 

 

Cordialement, 

 

Jérémy

Edited by Bllidz
oublie (see edit history)

Share this post


Link to post
Share on other sites

Bonjour,

cela ne concerne pas directement PrestaShop mais simplement el traitement d'un formulaire avec fichier attaché.

Pour vous inspiré de ce qui est fait sur Prestashop regardez dans le code comment sont traité les chargement des zip ou m^mee simplement le chargement des images pour savoir comment récupérer le fichier et l'attaché au mail.

Share this post


Link to post
Share on other sites

3 hours ago, Mediacom87 said:

Bonjour,

cela ne concerne pas directement PrestaShop mais simplement el traitement d'un formulaire avec fichier attaché.

Pour vous inspiré de ce qui est fait sur Prestashop regardez dans le code comment sont traité les chargement des zip ou m^mee simplement le chargement des images pour savoir comment récupérer le fichier et l'attaché au mail.

Super , merci pour ta réponse, je vais regarder ça. 

Sinon juste pour la génération de la facture tu aurais une idée pour la joindre au mail ? 

Car j'ai essayé ça pour la joindre mais sans succès.

$pdf = new PDF($order->getInvoicesCollection(), PDF::TEMPLATE_INVOICE, $this->context->smarty);
$fileAttachment['content'] = $pdf->render();
$fileAttachment['name'] = 'facture.pdf';
$fileAttachment['mime'] = 'application/pdf';

Alors que si je mets un fichier quelconque et que je remplace ça par 

   $fileAttachment['content'] = file_get_contents(_PS_MODULE_DIR_.'/jv_mails/pdf/test.pdf'); 
            $fileAttachment['name'] = 'ar.pdf';
            $fileAttachment['mime'] = 'application/pdf'; 
        }

Je reçois bien mon pdf joint.

 

EDIT: Je reçois bien la facture... Juste une idiotie de ma part la facture n'était pas crée donc normal que ça envoyait rien... 

Reste plus qu'à voir le chargement des fichier

 

Edited by Bllidz
EDIT (see edit history)

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More