Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] Zend_Mail, kilka załączników
Master Pain
post 24.05.2010, 11:29:35
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 5.04.2007
Skąd: Jarocin

Ostrzeżenie: (0%)
-----


Witam

Mam problem z dołączeniem kilku plików do maila.

Kod:
  1. if($form->isValid($dane)) {
  2. if($form->zalaczniki->receive()) {
  3.  
  4. $dane = $form->getValues();
  5.  
  6. $mail = new Zend_Mail('utf-8');
  7. $mail->setFrom($dane['email'], $dane['imie_i_nazwisko'])
  8. ->setSubject($dane['temat'])
  9. ->setBodyHtml(nl2br($dane['tresc']))
  10. ->addTo('jakis.adres@domena.pl', 'Imię Nazwisko');
  11.  
  12. foreach($_FILES['zalaczniki']['name'] as $key => $nazwaPliku) {
  13. if($nazwaPliku != '') {
  14. $zalacznik = new Zend_Mime_Part(file_get_contents(APPLICATION_PATH.'/../upload/'.$nazwaPliku));
  15. $zalacznik->type = $_FILES['zalaczniki']['type'][$key];
  16. $zalacznik->disposition = Zend_Mime::DISPOSITION_ATTACHMENT;
  17. $zalacznik->filename = $nazwaPliku;
  18.  
  19. $mail->addAttachment($zalacznik);
  20. }
  21. }
  22.  
  23. $mail->send();
  24. }
  25. }


I wysyła mi jeden plik o wielkości = suma wielkości załączonych plików.

Jak zatem wysłać maila z kilkoma załącznikami?

Ten post edytował Master Pain 24.05.2010, 11:30:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Pilsener
post 25.05.2010, 07:25:59
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Spróbuj tak (przez createAttachment):
  1. $body = 'Please find the zip file attached' ;
  2.  
  3. $mail = new Zend_Mail ();
  4. $mail -> setFrom ( 'support@example.com' , 'My Site Helpdesk' );
  5. $mail -> addTo ( 'awagstaff@gmail.com' , 'Alan Wagstaff' );
  6. $mail -> setSubject ( 'File attachment Test' );
  7. $mail -> setBodyText ( $body );
  8.  
  9. $fileContents = file_get_contents ( 'test_file.zip' );
  10. $attachment = $mail -> createAttachment ( $fileContents );
  11. $attachment -> filename = 'test_file.zip' ;
  12.  
  13. $mail -> send ();


Albo zmodyfikuj swój kod, na pierwszy rzut oka pracujesz cały czas na jednym obiekcie zapisanym w tej samej zmiennej, ja bym radził spróbować:
  1. $mail->addAttachment($zalacznik_1);
  2. $mail->addAttachment($zalacznik_2);
Go to the top of the page
+Quote Post
Master Pain
post 25.05.2010, 09:22:42
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 5.04.2007
Skąd: Jarocin

Ostrzeżenie: (0%)
-----


Dziękuję, pomogło [ten pierwszy sposób]. Ten drugi nie byłby zły, jeżeli chodzi o zmienne, bo przekazywane są do obiektu $mail jako obiekty i tam już są składowane, także nazwa nie miała tu znaczenia.

Kod teraz wygląda tak: [częściowo]
  1. foreach($_FILES['zalaczniki']['name'] as $key => $nazwaPliku) {
  2. if($nazwaPliku != '') {
  3. $at = $mail->createAttachment(file_get_contents(APPLICATION_PATH.'/../upload/'.$nazwaPliku));
  4. $at->type = $_FILES['zalaczniki']['type'][$key];
  5. $at->filename = $nazwaPliku;
  6. }
  7. }
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 14:57