![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 15.05.2008 Ostrzeżenie: (0%)
|
Witajcie, jako nowy użytkownik tego forum chciałem najepierw wszystkich powitać:
Witajcie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A teraz problem:
tak wygląda funkcja wysyłania maila. Wzięta ze strony php.net. Problem polega na tym że mail wysłany za pomocą tej funkcji wygląda jak jedna wielka sieczka. Brak kodowania, wyświetlają się w treści nagłówki. A wystarczy, że zamienię "\r\n" na \n" i już wszystko działa jak należy. Wcześniej działało to na serwerze z PHP 5.16 obecnie jest PHP 5.20. Wersja php-mail to 1.1.6. Wcześniej ta sama wersja działała na serwerze FC 6.0 obecnie jest to Debian Etch. Może ktoś z Was miał tego typu problem? Będę wdzięczny za wszelkie podpowiedzi. Owszem istnieje jeszcze opcja zmiany tego na kilkuset stronach - ale wolałbym jej uniknąć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował batman 15.05.2008, 21:10:10
Powód edycji: Dodałem bbcode. Tak na przyszłość - pamiętaj, by robić to samemu
|
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 18 Dołączył: 19.04.2008 Ostrzeżenie: (10%)
|
Server Linuxowy przewaznie nie wymaga \r takze mozesz sobie w konfigu zdefioniowac OS i w zaleznosci od tego ustawiac separator dla naglowka poczty.
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 15.05.2008 Ostrzeżenie: (0%)
|
Server Linuxowy przewaznie nie wymaga \r takze mozesz sobie w konfigu zdefioniowac OS i w zaleznosci od tego ustawiac separator dla naglowka poczty. Rozumiem że można to zrobić globalnie dla wszystkich stron. Znalazłem cos takiego w pakiecie php-mail, a ponieważ nie jestem mocny w PHP to pytam: /* Because the mail() function may pass headers as command * line arguments, we can't guarantee the use of the standard * "\r\n" separator. Instead, we use the system's native line * separator. */ $this->sep = (strstr(PHP_OS, 'WIN')) ? "\r\n" : "\n"; Jeśli ta część konfiguracji odpowiada za zmianę separatora - to jak to zmienić dla linuxa ? Właśnie przeglądam te funkcje w pakiecie php-mail ale wydaje mi się, że one i tak nie zmienią mi tego w nagłówkach maila. Zresztą próbowałem wstawić coś takiego: $this->sep = (strstr(PHP_OS, 'Linux')) ? "\n" : "\r\n"; Ale nie pomogło. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Podejrzewam, że ma to związek ze zmianą systemu. Tylko od czego zacząć szukanie ? (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Ten post edytował kefflar 15.05.2008, 10:41:53 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 18 Dołączył: 19.04.2008 Ostrzeżenie: (10%)
|
$this->sep =
rozumiem, ze masz obiekt ze skladowa -sep-, bo chyba nie wpisales tego tak sobie ?(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) pytam dla pewnosci. Rozwiazania masz dwa, jesli wykrycie systemu i podmiana separatora nie pomaga, bo faktycznie wykrywanie np. nie dziala, to umieszczasz we wlasnym pliku konfiguracyjnym wlasciwy separator i tyle. Wtedy jesli PHP_OS nie dziala z jakiegos powodu uzywasz danych z warunku. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 15.05.2008 Ostrzeżenie: (0%)
|
Okazuje się że problem leży po stronie serwera pocztowego, lub jakiegoś komponentu zajmującego się przyjmowaniem poczty. Może spamassassin. Jak wysyłam pocztę na inny serwer to mail dochodzi prawidłowo. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
No cóż trzeba dalej grzebać w konfiguracji. Problem rozwiązany: a opisany jest tutaj: http://bugs.php.net/bug.php?id=15841 U mnie niestety nie działało rozwiązanie podane w linku na końcu. Jeśli ktoś z Was będzie miał podobny problem to zapraszam. |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 0 Dołączył: 4.06.2007 Ostrzeżenie: (0%)
|
dzięki za ten post
|
|
|
|
![]() ![]() |
|
Aktualny czas: 20.12.2025 - 02:44 |