Salut tous le monde
Après avoir fait de nombreuses recherches et malgré le nombre important de posts que j'ai pu lire, je n'arrive pas à identifier mon erreur....
Pour faire simple,
Jusque là tout fonctionne correctement, les fichiers pdf que je génère sont parfaitement lisible avec adobe.
- J'ai créé un formulaire d'upload de fichier
- Que je transforme en pdf, fusionne si besoin et sauvegarde sur mon serveur
Mais ensuite :Et la plus rien de fonctionne, j'envoie bien un mail, il y a bien mes fichiers rattachés mais illisible avec adobe qui détecte bien qu'ils ont été envoyé en pièce jointe et signale qu'ils sont endommagés ou corrompus....
- je cherche à les envoyer par mail
Voici ma méthode d'envoi
et pour ma methode getAttachementFile() voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 public function sendMailJoin(Contrat $contrat, array $result) { #création du mail $sm = $this->getServiceLocator(); $config = $sm->get('config'); $comptesMails = $config['mail']; $mail = new Mail\Message(); $mail->setEncoding("UTF-8"); # Récupération des paramètres mails de la boite gestion. $mail->setFrom($comptesMails['****']['mail'], $comptesMails['****']['intitule']); $mail->addTo($contrat->getEmail()*/, $contrat->getRaisonSociale()); # Contenu $txtSujet = 'Envoi de fichiers '; $txtContenu = 'blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla'; $aPart = array(); # Contenu Texte $partTexte = new Mime\Part(strip_tags(str_replace(array('<br>', '<li>', '</li>'), array("\n", '- ', "\n"), $txtContenu))); $partTexte->type = "text/plain; charset=UTF-8"; $partTexte->encoding = 'quoted-printable'; $aPart[] = $partTexte; # Contenu Html $partHtml = new Mime\Part('<html><body><div>'.$txtContenu.'</div></body></html>'); $partHtml->type = "text/html; charset=UTF-8"; $partHtml->encoding = 'quoted-printable'; $aPart[] = $partHtml; #attachement foreach ($result['pdf'] as $myPdf){ $aPart[] = $this->MonPlugin()->getAttachementFile($myPdf); } # Sujet $mail->setSubject($txtSujet); #corp du mail $body = new Mime\Message(); $body->setParts($aPart); $mail->setBody($body); $mail->getHeaders()->get('content-type')->setType('multipart/alternative'); # Envoi du mail $transport = new Mail\Transport\Sendmail(); $transport->send($mail); }
Si quelqu'un pouvait m'aider ou bien m'orienter sur un tuto.... et je ne souhaite pas passer par la librairie phpMailer......
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public function getAttachementFile($param) { if(file_exists($param)){ $file= pathinfo($param); $txt = chunk_split(base64_encode(file_get_contents($param))) ; $partPdf = new Mime\Part($txt); $partPdf->type = 'application/pdf'; $partPdf->filename = $file['basename']; $partPdf->disposition = 'attachement'; $partPdf->encoding = 'base64'; return $partPdf; } }
Merci beaucoup....
Partager