Bonjour à tous
Voici le code que j'utilise pour envoyer des emails contenant du html et pouvant contenir un fichier pdf rataché en pièce jointe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function sendMail( $txtSujet, $txtContenuHtml, $destinataire, $destinataireSecond = array(), $aFichier = array()) { $sm = $this->getController()->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['gestion']['mail'], $comptesMails['gestion']['intitule']); # Gestion des destinataires $mail->addTo($destinataire); $mail->addBcc($comptesMails['gestion']['mail'], $comptesMails['gestion']['intitule']);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 foreach ($destinataireSecond as $adresseSecondaire){ $mail->addCc($adresseSecondaire); } # Sujet $mail->setSubject($txtSujet); # Contenu Texte $partTexte = new Mime\Part(strip_tags(str_replace(array('<br>', '<li>', '</li>'), array("\n", '- ', "\n"), $txtContenuHtml))); $partTexte->type = "text/plain; charset=UTF-8"; $partTexte->encoding = 'quoted-printable';
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 # Contenu Html $partHtml = new Mime\Part('<html><body><div>'.$txtContenuHtml.'</div></body></html>'); $partHtml->type = "text/html; charset=UTF-8"; $partHtml->encoding = 'quoted-printable'; $body = new Mime\Message();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if($aFichier['error'] == 0 && $aFichier['size'] > 0){ $content = new Mime\Message(); $content->addPart($partTexte); $content->addPart($partHtml); $contentPart = new Mime\Part($content->generateMessage()); $contentPart->type = "multipart/alternative;\n boundary=\"" .$content->getMime()->boundary() . '"'; $body->addPart($contentPart);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $messageType = 'multipart/mixed'; $file = $aFichier['tmp_name']; $handle = fopen($file, 'rb'); //Ouverture du fichier $lectureFichier = fread($handle, filesize($file)); //Lecture du fichier fclose($handle); //Fermeture du fichier $attachment = new Mime\Part($lectureFichier); $attachment->filename = $aFichier['name']; $attachment->type = $aFichier['type']; $attachment->encoding = Mime\Mime::ENCODING_BASE64; $attachment->disposition = Mime\Mime::DISPOSITION_ATTACHMENT;Il y a environ un an, Grunk avait pris le temps de m'aider ce qui avait abouti au code ci-dessus tiré du tuto https://akrabat.com/sending-attachme...with-zendmail/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $body->addPart($attachment); $mail->setBody($body); $mail->getHeaders()->get('content-type')->setType($messageType); $mail->setEncoding('UTF-8'); }else{ $body->setParts(array($partTexte, $partHtml)); $mail->setBody($body); $mail->getHeaders()->get('content-type')->setType('multipart/alternative'); } # Envoi du mail $transport = new Mail\Transport\Sendmail(); $transport->send($mail); }
Et jusqu'a présent ce code ne me provoquait aucune erreur.
Mais voila maintenant j'ai besoin d'envoyer des fichiers de plus de 8 Mo et zend s'interrompt, me signale que sendMail a rencontré une "erreur inconnue".![]()
Résultat pas de mail envoyé !!!!
Quelqu'un a déjà eu le même problème ?
merci
Partager