Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]funkcja, heredoc i nowe linie
Forum PHP.pl > Forum > Przedszkole
Mackos
Witajcie,
Mam taką drobną funkcję, do wysyłania maili z załącznikiem:
  1. function mailerek_pdf($recipientAddr,$subjectStr,$mailBodyText,$filePath){
  2. $fromAddr = 'biuro@strona.pl';
  3. $fileName = basename($filePath);
  4. $fileType = 'application/pdf';
  5. $nadawca = 'Serwis .pl <biuro@strona.pl>\r\n';
  6.  
  7. $mineBoundaryStr='otecuncocehccj8234acnoc231';
  8.  
  9. $headers= <<<EEEEEEEEEEEEEE
  10. From: $nadawca
  11. Reply-To: $fromAddr
  12. MIME-Version: 1.0
  13. Content-Type: multipart/mixed; boundary="$mineBoundaryStr"
  14.  
  15. EEEEEEEEEEEEEE;
  16.  
  17. $mailBodyEncodedText = <<<TTTTTTTTTTTTTTTTT
  18. This is a multi-part message in MIME format.
  19.  
  20. --{$mineBoundaryStr}
  21. Content-Type: text/html; charset=UTF-8
  22. Content-Transfer-Encoding: quoted-printable
  23.  
  24. $mailBodyText
  25.  
  26. TTTTTTTTTTTTTTTTT;
  27.  
  28. $file = fopen($filePath,'rb');
  29. $data = fread($file,filesize($filePath));
  30. fclose($file);
  31. $data = chunk_split(base64_encode($data));
  32.  
  33.  
  34. $mailBodyEncodedText .= <<<FFFFFFFFFFFFFFFFFFFFF
  35. --$mineBoundaryStr
  36. Content-Type: $fileType;
  37.  name=$fileName
  38. Content-Disposition: attachment;
  39.  filename="$fileName"
  40. Content-Transfer-Encoding: base64
  41.  
  42. $data
  43.  
  44. --$mineBoundaryStr--
  45.  
  46. FFFFFFFFFFFFFFFFFFFFF;
  47.  
  48. mail( $recipientAddr , $subjectStr , $mailBodyEncodedText, $headers );
  49. }

I wszystko działa pięknie poza jednym - nowymi liniami.
Próbowałem już chyba wszystkiego -> \n , znaczkiów html, nowych linii wpisanych z klawiatury. I niestety nic nie podziałało, czytałem w manualu php na temat heredoc, ale rozwiązania nie udało mi się wyczytać.
Czy ma ktoś jakikolwiek pomysł jak dzielić to na nowe linie ?
mlawnik
To FFFFFFFFFFFFF wygląda ohydnie.

Spróbój \r\n.
toaspzoo
Zrób np tak
Kod
mail( $recipientAddr , $subjectStr . "\n" , $mailBodyEncodedText ."\n", $headers."\n" );
melkorm
Cytat
Content-Type: text/html;


Wysyłasz content HTML i chcesz by interpretowało Tobie nowe linie?

<br> / <br />, lub zmiana na text/plain.
Tomplus
Albo specjalnej funkcji PHP do tworzenia nowych linii: PHP_EOL

  1. $headers .= "MIME-Version: 1.0".PHP_EOL;


i fakt... to FFFF i EEEE wygląa brzydko w kodzie.
Fifi209
Cytat(Tomplus @ 15.05.2011, 22:59:10 ) *
Albo specjalnej funkcji PHP do tworzenia nowych linii: PHP_EOL

Po 1. To nie jest funkcja
Po 2. Wstawia znak nowej linii a nie HTML'owy znacznik nowej linii, o czym pisał kolega nad Tobą.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.